Der Programmier-Thread

Die Zukunft des Webs liegt IMHO bei JavaScript. via Libraries wie Backbone.js und Underscore.js kann man eine ganz gute modulare Grundlage bauen. Require.js ermoeglicht es seinen Code in Module aufzuteilen und dynamisch vom Server On-Demand nachzuladen. Ganz heisses Eisen!

Sehr interessant ist Node.js.

Fuer Node.js gibt es dann Frameworks wie Express,

Die wirklich interessanten Sachen spielen sich momentan im JavaScript-Umfeld ab,.
Hat dieses Kind eigentlich einen Namen? Gehen diese Dinge alle von Node.js aus?
 
PSN-Name: chrizeliq
Hat dieses Kind eigentlich einen Namen? Gehen diese Dinge alle von Node.js aus?
Es geht nicht alles von Node.js aus, aber Node.js ist Teil einer riesigen Infrastruktur in dem Bereich. Viele Tools im JavaScript-Umfeld nutzen Node.js als lokale Runtime um ihre Funktionalitaet als Systemtool anzubieten, etwas was bisher eigentlich eher Sprachen wie Ruby, Python oder Perl gemacht haben: Scriptsprachen fuer lokale Anwendungen, ist dank Node.js jetzt auch im JavaScript-Umfeld populaer. Hinzu kommt, dass Node.js dank der v8-Engine von Google extrem schnell ist d.h. man hat hier gleich eine Scriptsprache die, im Vergleich zu den anderen klassischen Scriptsprachen, eine viel hoehere Performance erreichen kann.

Im Node.js-Umfeld ist "npm" sehr populaer. Es ist der Paketmanager, aehnlich wie cpan in Perl, gem bei Ruby, etc. D.h. hier hat man auch - wie gesagt - eine Infrastruktur dahinter um wie bei den klassischen Scriptsprachen Libraries sehr einfach nachzuinstallieren.

Node.js ist JavaScript. Das ist interessant, weil jetzt kannst du Libraries schreiben, die sowohl auf dem Server, in der Konsole als Anwendung, oder in jedem beliebigen Webbrowser laufen. Underscore.js habe ich z.B. im Browser und bei diversen Deployment-Scripten im Einsatz, man hat keinen Bruch mehr.

Die Bewegung hin zu Node.js als Lieferant fuer die Infrastruktur entwickelt sich zu einer einheitlichen konsistenten Platform fuer Webentwicklung.

Wenn dir z.B. JavaScript nicht gefaellt, kannst du auch CoffeeScript verwenden. CoffeeScript ist in CoffeeScript geschrieben und kompiliert nach JavaScript. Du kannst den CoffeeScript-Compiler sowohl im Webbrowser, als auch lokal via Node.js ausfuehren.

Less ist ein sehr populaerer Compiler fuer CSS, um Variablen, Mixins etc. in CSS nutzen zu koennen. Der Less-Compiler ist in JavaScript geschrieben, laeuft sowohl im Webbrowser, als auch lokal via Node.js.

JavaScript ist auf Github die populaerste Programmiersprache. Wundert es einen? JavaScript ist die verbreiteste dynamische Programmiersprache auf der Welt. Nur JavaScript lauft auf jedem Smartphone, auf jedem Notebook und auf jedem Tablet-Computer der Welt. Insofern ist JavaScript IMHO die wichtigste Programmiersprache in diesem Jahrzehnt.

Dementsprechend populaer sind Programmiersprachen die nach JavaScript kompilieren. CoffeeScript ist ein Beispiel, aber es gibt zig andere Compiler die nach JavaScript kompilieren. Browser-Hersteller arbeiten mit Sourcemap-Support aktiv daran, dass das Debugging im Webbrowser mit solchen Compilern einfacher wird, und wir werden in den naechsten Monaten immer mehr in der Richtung sehen.

Momentan springen fast woechentlich neue interessanter JavaScript-basierter Frameworks und Libraries aus dem Boden. Vor einigen Wochen wurde z.B. Meteor vorgestellt: http://meteor.com -- schau dir da z.B. den Screencast an - extrem interessante Technologie und sehr inspirierend.

Oder schauen wir mal in den Multimedia-Bereich: Computerspiele. Mit three.js kann man extrem einfach auf die WebGL-Schnittstelle des Browsers zugreifen und Spiele bauen etc. Klar, der Browser-Support ist noch nicht 100% da, iOS unterstuetzt es noch nicht (vielleicht ja iOS6), aber es ist alles eine Frage der Zeit. Wenn du einen aktuellen Chrome und etwas Grafikleistung hast, kannst du ja mal diese Beispiele abchecken: http://mrdoob.github.com/three.js/ -- auch hier spielt JavaScript eine entscheidende Rolle wohlgemerkt!

Vor einigen Wochen hat Mozilla ein HTML5 MMORPG vorgestellt, BrowserQuest: http://browserquest.mozilla.org/ -- der Sourcecode von BrowserQuest ist auf Github verfuegbar... worin wurde das Ding gebaut? Client-Seitig in JavaScript... Server-Seitig auch in JavaScript mit Node.js...

Wie gesagt -- fuer mich ist momentan JavaScript, und die ganze Infrastruktur die dahinter haengt momentan das interessanteste Thema ueberhaupt, und ich habe das Glueck, dass ich genau in diesem Moment Vollzeit Software damit bauen darf.
 
Zuletzt editiert:
Vielen Dank für diese Antwort, die Bedeutung von JavaScript war mir nicht in diesem Ausmaß bewusst. Irgendwie augenöffnend dein Beitrag.

---------- Beitrag um 14:26 Uhr hinzugefügt ---------- Vorheriger Beitrag um 14:13 Uhr ----------

Der Meteor Screencast ist ja beeindruckend. Update an alle Clients, Hot-Code-Push. Sieht gut aus, aber auch alltagsfähig?
 
Gerade den interessanten Artikel hier gelesen
http://m.techcrunch.com/2012/05/27/hey-kids-get-off-my-lawn-the-once-and-future-visual-programming-environment/

Visuelle Programmierumgebungen für textbasiertes Programmieren. Schön, wie er anspricht, dass es schon alles mal gab, was noch kommen wird ^^

JavaScript taucht auch wieder auf. Bei Bewerbungen in Firmen die Java nutzen, werde ich mal fragen, was sie machen werden, weil Java ja Tod ist :) (diese ganzen JEE Klitschen suchen ja nach wie vor bekloppt nach Mitarbeitern)
 

crack-king

Administrator
Team-Mitglied
systems, systems, systems, systems, systems, systems
C <3

Man nutzt eine Methode und kriegt nur 0 oder -1 zurück und jetzt finde den Fehler ~fu~

Sitze hier schon seit STUNDEN dran und immer nur der selbe Fehler, aber woran liegts? Debuggen kann man ja knicken. Hilfsmethoden schreiben zum Überprüfen fallen mir leider auch nicht ein -.- Alles scheiße
 
PSN-Name: Drifta90
Das "einfachste" ist halt die ganzen Schritte der fehlerhaften Funktion mal einzeln zu testen um zu schauen, ob da irgendwas falsch läuft.

Ist teilweise schon nervig stundenlang nach Fehlern zu suchen, die manchmal echt nur aus einem Zeichen bestehen. :D
 
PSN-Name: chrizeliq
Unter Linux anscheinend /usr/include/asm-generic/errno-base.h und /usr/include/asm-generic/errno.h -- unter OSX /usr/include/sys/errno.h

"Bad address" ist das was es bedeutet - du greifst auf einen ungueltigen Speicherbereich zu.
 

crack-king

Administrator
Team-Mitglied
systems, systems, systems, systems, systems, systems
Danke! Habs aber mittlerweile anders gelöst^^

---------- Beitrag um 16:56 Uhr hinzugefügt ---------- Vorheriger Beitrag um 16:51 Uhr ----------

Hab das eh falsch verstanden. Die wollten AF_INET und nicht AF_UNIX
 
PSN-Name: chrizeliq
Momentan gehe ich Vim fremd und versuche erneut einen ernsthafteren Versuch mit Sublime Text 2.

Der Texteditierungs-Part kann natuerlich nicht mit der Geschwindigkeit mithalten, mit der man mit Vim arbeiten kann. Es gibt allerdings ein Vim-Plugin, das nicht so schlecht ist, mal schauen. Aber die Infrastruktur drum rum ist etwas moderner, und es sieht alles etwas besser aus. Ein Projektsystem und ein File-Navigator sind fest eingebaut, und mit ⌘P kann man schnell zu Dateien in Projekten springen, im Grunde Sachen die man von TextMate auch her kannte, aber bei dem tut sich ja nicht mehr viel.

Pluspunkt von Sublime ist auch, dass er auf allen drei grossen Betriebssystemen lauft. Leider sind die Shortcuts auf jedem Betriebssystem andere, was ich etwas schade finde, weil man dann nicht einfach Sublime unter Windows nutzen kann, weil die ganzen Shortcuts nicht mehr mit Command sondern mit Strg ablaufen, das ist etwas nervig.

Interessant ist das Plugin Package Control. Damit kann man zusaetzliche Plugins in Sublime direkt sehr einfach installieren, und muss gar nichts mehr sonst machen, nicht mal neu starten. Es ist eine Paketverwaltung fuer Sublime die alles komplett automatisiert, von Suche, Download und Installation von Plugins. Einfacher gehts nicht.

Wie gesagt. Was Sublime interessant macht ist weniger der Editor, sondern mehr die Infrastruktur. Es ist ein moderner Ansatz von dem was frueher Emacs ausmachte: Starke Erweiterbarkeit, und im Fall von Sublime ist das mit Python auch mal eine Sprache die man nicht erst lernen muss, sondern evtl. schon versteht. Vim setzt auf Vimscript und Emacs auf Emacs Lisp, d.h. man muss diese erst lernen und verstehen, bevor man da was bauen kann. Die Python API von Sublime ist dagegen sehr einfach und leicht verstaendlich. Plugins haben anscheinend die Moeglichkeit sich in allen moeglichen Stellen einzunisten, so gibt es Plugins fuer Autovervollstaendigung, Syntaxpruefungen, bis hin zu ganz einfachen Sachen, die sich in allen moeglichen Menues registrieren koennen. Sublime Text 2 ist insofern als Platform gesehen ein sehr interessantes Stueck Software. Konfigurationsdateien werden im JSON-Format bearbeitet, und bei jeder Aenderung automatisch neu eingelesen.

Nur die verfuegbare Dokumentation laesst noch etwas zu wuenschen uebrig.

Einziger Minuspunkt IMHO ist, dass Sublime nicht Open Source ist. Es ist Closed-Source, und ich weiss nicht ob es gut ist so viel Zeit in einen Texteditor zu stecken, ihn und seine Bedienung zu lernen, wenn nicht sicher ist, dass es ihn in 10 Jahren noch gibt. Bei Vim oder Emacs kann man sich sicher sein, dass es sie in 10 oder 20 Jahren noch geben wird. Ich verwende Vim ja schon seit ueber 10 Jahren.

Aber was solls. Sublime ist ein solider Editor zum Arbeiten. Es gibt ganz huebsche Themes.





 

crack-king

Administrator
Team-Mitglied
systems, systems, systems, systems, systems, systems
Ich habe mal ne Frage...

Ich öffne eine Datei in C mit fopen und im Modus w+ (write+read)

Danach will ich mit fprintf etwas hinzufügen. Aber irgendwie passiert nix?! Woran könnte es liegen? Alles wird bis dahin fehlerlos ausgeführt, doch ab dem fprintf nicht mehr
 

crack-king

Administrator
Team-Mitglied
systems, systems, systems, systems, systems, systems
Ich hab mal wieder nen Java-Problem :ugly:

Aktuelle Aufgabe:

Ich soll ein Array, bestehend aus Listen mit HashItems erstellen. Von der Grundlage her eigentlich kein Problem, aber irgendwie will das gerade nicht so wie ich :D

Code:
        LinkedList<HashItem>[] l;
	public HashTable(int groesse){
		l = new LinkedList<HashItem>[groesse];
	}
Das ist mein aktueller Versuch. Jedoch kriege ich immer die Fehlermeldung, dass ich so kein generisches Array erstellen kann. Hat jemand einen Tipp?

P.S. Die LinkedList ist die Standard Java-Bibliothek.
 

crack-king

Administrator
Team-Mitglied
systems, systems, systems, systems, systems, systems
Naja, aber ich will ja gerade ein Array bestehend aus diesen Listen machen.

Also quasi so

[0] -> Element e1 - > Element e2
[1] -> Element e3 -> Element e4

Ob das Sinn macht oder nicht, ist gerade zweitrangig. Das ist die Vorgabe der Uni -.-
 
PSN-Name: chrizeliq
Code:
public class HashTable {
	private class HashItemList extends LinkedList<HashItem> {}
	
	HashItemList[] l;
	
	public HashTable(int groesse){
		l = new HashItemList[groesse];
		for (int i = 0; i < groesse; i++) {
			l[i] = new HashItemList();
		}
	}
	
}
 
Top