| |
|
Pike-Anwender aus aller Welt treffen sich |
|
|
Veröffentlicht durch Raffzahn am Freitag 08. Oktober 2004, 22:59
Aus der WzS(){return({"der",-"des",-"dem",-"den"})[casus];} Abteilung
|
|
|
|
|
Bernd hat uns einen Hinweis auf das PIKE-Camp 2004, das wohl "größte PIKE-Treffen dieses Jahres" am 13. bis 19. Oktober in Essen geschickt... da kommen nostalgische Gefühle auf: Morgengrauen, Silberland, Seifenblase und natürlich die ewige Baustelle und Schmuddelkind, das PK-Mud (*1)
|
|
|
|
|
|
Aber zurück zu Pike. Bernd schreibt weiter: "Anwender und Entwickler der Programmiersprache Pike kommen aus Schweden, USA, Lettland, Ungarn, Österreich, Frankreich, Deutschland und anderen Ländern nach Essen um eine Woche lang an Vorträgen, Workshops und Programmierkursen teilzunehmen. Im Rahmen des Pike Camps werden die 3. jährliche Pike Konferenz, die 2. jährliche Caudium Konferenz, der Steam Entwickler Tag und MODIv: der 5. PSYC Modifizierungsevent stattfinden. Hauptredner ist Prof. Uwe Aßmann, Inhaber des Lehrstuhls Softwaretechnologie an der Technischen Universitäät Dresden, Research Center for Integrational Software Engineering (RISE) Linköpings Universitet, Schweden, über 'Pike zwischen UML und Java: Ein Anwendungsfall in der Universitätsausbildung'
Interessierte an Pike und den darin geschriebenen Anwendungen sind eingeladen an allen Teilen der Veranstaltung teilzunehmen. Einführungskurse zu Pike werden jeden Tag angeboten."
Joo, LPC (und Pike als der 'erwachsene', kommerzielle Abkömmling) ist eine wirklich nette Sprache, ein munterer Bastard aus Lisp und C, Closures und Type-Cast, Listen und Arrays. Wenn mich einer fragt, wäre es auch das bessere Java gewesen. Bytecode und OO. LPC coden hat viel Spass gemacht, auch wenn meine Programmbeispiele manch angehenden Magier in den Wahnsinn getrieben haben (*2).
LPC/Pike ist aber auch ein gutes Beispiel wie stark die Sprache, mit der man sich erstmalig beschäftigt hatn einen prägt, und wie sehr man dann versucht, diese auch später im Berufsleben einzusetzen. Genau die gleiche Geschichte wie mit Pascal und C. So wie LPC ja eigentlich nur für Muds entwickelt wurde waren auch Pascal und C eigentlich nicht als Allgemeine Sprachen gedacht ... aber wie immer gilt: 'Was der Bauer ned kennt frisst er ned' bzw. nach der ersten Ableitung dazu ('Schuster bleib bei deinem Leisten') waren Pascal und C plötzlich überall. Man könnte es auch den BASIC-Effekt nennen, manche Firmen basieren sogar darauf.
Thomas Zigron hat auf generation-php.net einen Patch von Stefan Esser gefunden "welcher PHP auf Deutsch umschaltet. Nun ist PHP programmieren auch ohne Englisch Kenntnisse möglich." Jo, warum nicht, auch wenn die wahl der Befehlsworte noch etwas holprig ist. Das wär auch schöner gegangen. Ansonsten lobenswert. Das erinnert mich an F4, eine Sprache, bzw. einen Interpreterbaukasten den ich vor Jahren mal gemacht habe ...
Wenn(
Und(Aenderung(*),
Vergleich(Groesser,Datum,"041101")),
Meldung("HASRV-03")).
Nun ja, all die, die neben dem Erfinden von Sprachvarianten noch zeit zum Schmunzlen haben, hat unser Taran einen Einblick in das harte Leben eines Webdesigners auf Kundensuche entdeckt - nur um gleich darauf festzustellen, das dieser Basisdemokratische Ansatz auch schon von Werbeagenturen vereinnahmt wurde. Nicht mal mehr auf dem Örtchen bleibt einem die nötige Ruhe und Naturnähe.
Aber was solls, man kann sich immer noch auf das von Treibholz entdeckte TIEFFFLIEGER-Radl (*3) schwingen und davondüsen. O-Ton Dino: "nettes teil, da wirkt der porsche direkt lahm dagegen".
---
*1 - Tscha, gute alte Telnet-Links - die Welt entsteht im Kopf *G*
*2 - Wenn man ein konsequent vererbungsbasiertes System von Objekten schafft, dann kann es nicht ausbleiben dass man sich fragt was rauskommt wenn man einen neuen NPC anlegt, der sowohl von std/npc/elf, als auch std/npc/zwerg abgeleitet ist ... das schrecklichste Wesen aller Zeiten, der Zwelf!
*3 - Irgendwie ist die NDR (Neue Deutsche Rechtschreibung) schlimmer als eine Masseninvasion von Zwelfen.
|
|
|
|
< Gläserner Mensch dank RFID-Armbanduhr? | Druckausgabe | Mehr über den Streit Sun vs. Red Hat > | |
|
Diese Diskussion wurde archiviert.
Es können keine neuen Kommentare abgegeben werden.
|
|
|
|
|
|
|
|
|
Ohja, das Teil ist sehr nett. Und verdammt leicht, weil aus Kohlefaser. Auf der Spezi dieses Jahr hattense so eines ausgestellt und ich hab mich mind. 'ne Viertelstunde an deren Stand rumgetrieben und das Teil zu bestaunen. Alleine die Hinterradfederung ist ein Kunstwerk für sich.
Aber genau so utopisch, wie das Teil aussieht und klingt, ist auch der Preis: Knappe 5000 €uronen für die Basisversion in Minimalausstattung... Wenn man dann noch 'ne Rohloff und ein paar andere Goodies dazu haben will, sind locker 6000 Frag€zeichen weg.
--
There is no place like $HOME
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Naja, auf den ersten Blick sind da aber auch einige Unschönheiten drin:
The last statement in main is "return -1;". In Pike, a negative return value from main means that the program doesn't stop executing when main is finished. This is necessary here, since otherwise the program would finish as soon as it had created the window, and the window would disappear at once.
Ich mag das nicht... Rückgaben, die den Programmfluss steuern...
GTK.Alert("Hello world!")
-> signal_connect("destroy", lambda(){ exit(0); });
return -1;
WTF lambda? wieso nicht einfach den Codeblock? Okay, ich weiss, es kann nicht jede Sprache gleich sein... aber unelegant ist es IMHO trotzdem.
It's important to note that the integer value 0 and the real value 0.0 are not equal to one another in Pike.
...
string accumulate_answer()
{
string result;
// Probably some code here
result += "Hi!\n";
// More code goes here
return result;
}
you will get a string "0Hi!\n", since Pike will try to make the best of the situation, adding your string to the integer 0. Had you instead initialized the variable to "", as in string result = "";, you'd get a better result.
WAAAAAAAAAAHHHH!
Als ruby-User bin ich natürlich auch etwas schwer von anderen Scriptsprachen zu überzeugen ;)
tL
--
Spammers: look at this fake address list
|
|
|
|
|
|
|
|
|
|
|
|
|
Sogenannte Pike, auch Langspiess genannt. Pikeniere. Hey, da gehör ich ja auch dazu ;))
--
"The more prohibitions there are, The poorer the people will be"
-- Lao Tse
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Okay, hast recht... lambda als alias für proc... allerdings wäre the ruby way mehr myMethod(x,y) {...}, solange nur ein Codeblock übergeben wird...
tL
--
Spammers: look at this fake address list
|
|
|
|
|
|
|
|
|
Von Anonymer Feigling am Thursday 14. October 2004, 03:55 MEW (#14)
|
|
|
|
|
das geht in pike im prinzip auch.
lamdas kann man halt auch da verwenden wo man sonst keine funktion definieren kann:
funktion(x, lambda(){ ... });
gruss, eMBee.
|
|
|
|
|
|
|
|
|
Von Anonymer Feigling am Sunday 10. October 2004, 15:37 MEW (#8)
|
|
|
|
|
kannst du mal den unterschied zwischen generischen funktionen und messages erklären?
was sind dynamische typen? (warum sind die in pike nicht dynamisch?)
und wie is das mit dem eingreifen in den parsebaum gemeint? pike hat einen preprozessor (wie c), meinst du das? (kann ich mir nicht vorstellen weils zu primitiv scheint)
gruss, eMBee.
|
|
|
|
|
|
|
|
|
|
|
|
|
Kurze Antwort:
ANSI Common Lisp, Paul Graham, ISBN 0133708756
Lange Antwort:
kannst du mal den unterschied zwischen generischen funktionen und messages erklären?
Es gibt zwei Modelle, um objekt-orientiertes Programmieren umzusetzen: Message Passing und Generic Functions. Smalltalk verwendet Message Passing, Common Lisp Object System und Dylan verwenden Generic Functions.
Beim Message Passing Model gehören Methoden zu Objekten und beim Generic Function Model sind Methoden für Objekte spezialisiert. Wenn nur der erste Parameter einer generischen Funktion spezialisiert ist, sind Message Passing und Generic Function gleichwertig. Aber beim Generic Function Model kann man soviele Parameter spezialisieren, wie man will. So gesehen ist das Message Passing Model ein Subset des Generic Function Model.
Zugegeben, wenn man nur Sprachen kennt, die Message Passing implementieren, tönt es, als ob Generic Functions keine grossen Vorteile bieten. Wenn man aber in Common Lisp programmiert, sind die Vorteile besser zu erkennen.
was sind dynamische typen? (warum sind die in pike nicht dynamisch?)
Beim dynamic typing muss der Typ einer Variable nicht deklariert werden, wie das z.B. bei C++, Java oder Pike der Fall ist, welche nur static typing unterstützen.
Dynamic typed Sprachen erkennen die Typen von Objekten dynamisch bei der Ausführung und nicht bei der Kompilation. Dies hat Vor- und Nachteile. Sprachen wie Common Lisp unterstützen beide Arten von Typing.
Eine gute Übersicht zu diesem Thema hat die Wikipedia.
und wie is das mit dem eingreifen in den parsebaum gemeint? pike hat einen preprozessor (wie c), meinst du das? (kann ich mir nicht vorstellen weils zu primitiv scheint)
Makros machen bottom-up programming möglich. Das heisst, man kann damit die Programmiersprache anpassen und wird somit zum Sprachdesigner. Dazu benötigt es aber mächtigere Makros als es z.B. C, C++ und Pike bieten.
Da Lisp Code bereits im Sourcecode in Baumform vorliegt, können Makros direkt in den Parsebaum eingreifen und sogar in Lisp selbst geschrieben werden. Eine kurze Übersicht über Common Lisp Makros ist in der Wikipedia zu finden.
--
Real programmers can write assembly code in any language. :-)
--Larry Wall
|
|
|
|
|
|
|
|
|
|
|
Von Anonymer Feigling am Thursday 14. October 2004, 03:59 MEW (#15)
|
|
|
|
|
da ich zu denen geh"ore die dabei sind das tutorial zu "uberarbeiten, w"ar es interessant welche stelle du da meinst, damit wir die auch gleich verbessern k"onnen.
gruss, eMBee.
|
|
|
|
|
|
|
|
|
|
Von Anonymer Feigling am Saturday 16. October 2004, 03:15 MEW (#17)
|
|
|
|
|
noch nicht, das ganze soll demn"achst als buch erscheinen. wir werden versuchen deinen vorschlag zu ber"ucksichtigen.
gruss, eMBee.
|
|
|
|
|
|
|
|
|
|
|
|
|
(endlich mal wieder eine richtig schoene Disk hier :)
Die vieleicht treffenste Ausschreibung fuer LPC die ich mir denken kann ist Lisp Per C. LPC hat wesentlich mehr mit LISP gemeinsamm als mit C ... ausser das es sich wie C liest, und von anfaengern wie selbiges maletriert werden kann.
Was Message Parsing vs. Generiv Funcions anbelangt, so gilt das in LPC im Prinzip beides geht. Es laesst sich OO auf beiden Wegen ereichen, wobei der GF weg jedoch einen wesentlich hoeheren Aufwand des Lernens erfordert. Wobei, im Alltagsbetrieb sind beide wege fuer mich immer noch gleichwertig (so das messagesystem detailiert genug ist die Typen auch beim auswaehlen der Funktion/Methode beachten zu koennen).
Dynamische Typen gibts (wie der AF anmerkte) sehr wohl, das schoene ist aber, dass man sowohl typisiert als auch per (halb)automatischr Typwandlung arbeiten kann.
Was die Makros anbelangt hast Du natuerlich recht, LISP erlaubt hier viel, und erinnert mich da eher an einen Macroassembler (ich mein einen richtigen, z.B. /370) was die moeglichkeiten anbelangt, denn die Textersetzungsspielchen von C. LPC ist was den praeprozessor anbelangt nur wie C :(
LPC ist eine der schoensten Sprachkonstruktionen die ich kenne.
Gruss
H.
|
|
|
|
|
|
|
|
|
|
|
Von Anonymer Feigling am Saturday 09. October 2004, 19:25 MEW (#6)
|
|
|
|
|
echt gelunger Witz. Deshalb liebe ich /. Leider ist die /. Kultur noch nicht bis zu ln-s durchgedrungen.
|
|
|
|
|
|