Krautkanal.com

Veröffentlicht am 2015-07-17 19:14:53 in /prog/

/prog/ 7425: Hallo Bernd Da ich noch gar keine praktische Erfahru...

bruno_mart Avatar
bruno_mart:#7425

Hallo Bernd

Da ich noch gar keine praktische Erfahrung im Bereich Programmieren habe, komme ich zu dir. Auf /int/ hatte ich letztens eine Idee vorgestellt. Es handelt sich um eine Art "Chan-reader". Heutzutage bin ich halt nicht mehr auf nur einem Chan auf maximal 2 Brettern unterwegs, sondern auf vielen verschiedenen Seiten und Brettern. Das, was diese Dinge gemeinsam haben, ist ihre Geschwindigkeit. Sie sind halt alle umgalublich langsam. So wie Usenet zb. Da dacht ich mir: Anstatt jeden einzelnen Tab neu zu laden kannst du ja ein Programm machen, welches dich die Fäden, die dich interessieren, abbonieren lässt und dann kannst du mit einem Knopfdruck alle Fäden auf einmal Updaten und die ganzen neuen Posts sehen. So wie RSS oder USenet in Thunderbird. Nun sieht die Sache so aus, dass ich momentan C lerne. Ein Bernd hat mir davon abgeraten solch ein Projekt in C zu schreiben und mir wurde eine ganze Hand voll anderer Sprachen empfohlen wie Ruby, Perl, Python und ich glaub bash.

Nun die Frage an dich, den erfahrenen Programmierer. Wie weiß ich, welche Sprache sich wie für ein Projekt eignet? Müsstest du solch ein Projekt angehen, wie würdest du vorgehen? Wie sieht dein Sprachrepertoire aus?

Anbei: Das Lied der Deutschen.

leelkennedy Avatar
leelkennedy:#7426

>Wie weiß ich, welche Sprache sich wie für ein Projekt eignet?
C ist für alles, was flink wie ein Wiesel sein oder auf einem Microcontroller laufen muss.
Java, C# und Konsorten für große Projekte, die auf gängier, billig zu beschaffender Hartware laufen.
Scriptsprachen für kleines Zeug, bei dem die Performance irrelevant ist weil die Hartware sowieso hundert Mal überdimensioniert ist und man einfach nur gerne ein $Ding hätte, das $dingens macht. Also liegst du mit Skriptsprachen schon richtig. Kannst du natürlich auch mit Java o.ä. machen, aber dann schreibst du dreimal so viel und insgesamt wird das eher unpraktisch, weil du nicht mal schnell was neues einbauen kannst oder einen Fehler beheben. Es sei denn, du willst eine kühle Lauerapp für dein Telephon basteln. Mit C oder C++ geht es natürlich auch, aber das ist den Aufwand nicht wert. Wenn du kein Spiel oder Betriebssystem o.ä. bauen willst, nimm kein C/C++.
t. mäßiger Informatiker

jamesmbickerton Avatar
jamesmbickerton:#7427

>>7426
Verstehe. Aber wieso ist das so? Hängt es von den Libraries ab? Wieso ist C/C++ so schnell? Warum eignen sich Skriptschprachen nicht für große Projekte? Verstehe ich das richtig, dass Java C/C++ wegen seiner Plattformübergreifbarkeit vorgezogen wird?

Fragen über Fragen, wahrscheinlich sehr dumme sogar. Gibts zu diesem Thema vielleicht etwas brauchbares durchzulesen oder kommt das alles mit der Zeit?

1markiz Avatar
1markiz:#7428

C ist nicht schnell (siehe Carry-Flag und Pointer Aliasing). Die anderen sind nur assilangsam.

Java ist auch nicht komfortabel dafür langsam. Es ist einfach nur langsam.

jajodia_saket Avatar
jajodia_saket:#7429

>>7427
>Aber wieso ist das so? Hängt es von den Libraries ab?
Nur zum Teil. The right tool for the right job wie der Angelsachse sagt. C nimmst du halt z.B. bei zeitkritischen und/oder HW-nahen Geschichten. Du hast mehr direkte Kontrolle, musst dich dafür aber auch mit mehr Dscheiß (z.B. Speichermanagement) herumschlagen. In Skriptsprachen wird dir meist mehr abgenommen, dafür zahlst du dann halt den Preis, dass du ein, zwei Abstraktionsschichten mehr drin hast und alles nicht ganz so schnell läuft.
Vorschlag für dein Projekt: Nimm Python + ein simples Web-Framework, z.B. Flask


>Wieso ist C/C++ so schnell?
Kurze Antwort: C => Compiler, Skriptsprachen => Interpreter Gibt auch noch Mischformen wie Java et al., aber das braucht dich im Moment nicht zu interessieren


>oder kommt das alles mit der Zeit?
Dies. Viel Erfolg![spoiler]

leandrovaranda Avatar
leandrovaranda:#7430

Vielen Dank, ich habe noch viel vor mir.

ffbel Avatar
ffbel:#7449

>>7430
Nimm einfach Visual Basic. Damit ist es leicht

newbrushes Avatar
newbrushes:#7451

>>7449
/b/ ist da drüben ===>

andyisonline Avatar
andyisonline:#7490

Wenn du gerade C lernst, nimm C.
Das macht vielleicht nicht aus Effizienzgründen Sinn, ist didaktisch aber sinnvoll.

dhooyenga Avatar
dhooyenga:#7504

>>7425
>Müsstest du solch ein Projekt angehen, wie würdest du vorgehen?
Ich habe das in Python gebaut. Die Sprache bietet sehr komfortable Bibliotheken um etwa HTTP-Anfragen, Datenbanken oder Brauser-Schnittstellen zu behandeln und man kann eines ins andere stecken ohne sich Sorgen machen zu müssen.

>Wie weiß ich, welche Sprache sich wie für ein Projekt eignet?
Wenn man C nimmt, könnte man das selbe Ergebnis mit deutlich weniger Speicherverbrauch und Rechenleistung realisieren, weil man viel mehr Einfluss darauf hat, welche Daten wie gespeichert werden, aber mehr Einfluss heißt immer auch mehr Arbeit und also Entwicklungszeit.

Die Wahl der Sprache entscheidet sich daher oft daran, ob man den Aufwand während der Entwicklung (Bastelzeit, Kosten) oder während der Nutzung (Rechenleistung, Kundenzufriedenheit) haben möchte.

t1mmen Avatar
t1mmen:#7520

C ist eine universelle Programmiersprache, du kannst also jegliche Projekte darin schreiben, natürlich auch Großprojekte (siehe Linux-Kernel).

Als erste Programmiersprache ist es aber nicht so geeignet, hier empfiehlt sich die Verwendung einer sinnvoll strukturierten Lehrsprache wie PASCAL.

to_soham Avatar
to_soham:#7521

>Stringverarbeitung
>HTML parsen

>in C

Naja weißte.

areus Avatar
areus:#7522

>>7521
>Naja weißte.
Womit denn sonst?
libxml kennste?

bnquoctoan Avatar
bnquoctoan:#7523

>>7522
>Womit denn sonst?
Mit einer Skriptsprache selbstverständlich.

>libxml kennste?
HTML ist kein XML. Da sind zwar (fälschlicher Weise, weil nicht die Aufgabe) auch (mäßig) passende Werkzeuge drin aber der Aufwand ist gut das 10-Fache von dem in einer Skriptsprache. (War dort, tat es.)
Und dann hat man seine Daten in der den primitiven Typen von C vorliegen und wieder einen Arsch voll zu tun um überhaupt was damit anzufangen. Wenn man von der ganzen Arbeit irgend einen einen Vorteil hätte, wäre das ja zu rechtfertigen aber den gibt es eben nicht.

C ist nur für systemnahe Programmierung zu gebrauchen oder vielleicht noch für kleine Module, um Drecksarbeit zu bewältigen, aber Performanz ist eher eine Frage der Algorithmen.

newbrushes Avatar
newbrushes:#7535

>>7520
>2015
>Pascal empfehlen

Warum nicht gleich Brainfuck?

eloisem Avatar
eloisem:#7568

Python + Requests + BeautifulSoup

/faden

bassamology Avatar
bassamology:#7571

Sowas würde der zynische Altbernd einfach mit lynx -dump und diff in Shell machen.
Ta daa Problem gelöst.
Zynischer Altbernd macht sowas aber nicht, weil die meisten Betreiber extrem mett gehen bei Robots die ohne Sinn Last machen.

albertodebo Avatar
albertodebo:#7572

Zumindest auf KC hast du übrigens ganz oben einen Link: "RSS Thread 7425"