Entwicklungsgeschwindigkeit mit verschiedenen Sprachen



  • supertux schrieb:

    ich habe nie gesagt, dass ich IDEs schlecht finde. Ich denke, ich kann mich anpassen und eine IDE benutzen, wenn es Sinn macht. Für meine jetzige Arbeit komme ich auch ohne eine IDE bestens klar. So Sachen wie

    Debugger, Versionskontrolle, Profiler, Unittest-Tools, Servertools, DB-Tools, XML-Tools, GUI-Builder

    brauche ich nicht (gut debuger schon, gdb tuts auch) in meinen Editor intergriert zu haben. Versionskontrolle, naja ein svn up/ci auf der Konsole (wo vim breits läuft) geht auch schnell, usw.

    Mergen musst Du also nie oder machst Du das auch per Konsole? 😕 Wie Refactorst Du Deinen Code? Mit Suchen/Ersetzen? Unittests schreibst Du auch keine? Debugging ohne Maus kommt mir auch umständlich vor, aber hängt wohl davon ab, was der Debugger alles kann. Für mich klingt das zumindest alles ziemlich altbacken. 🤡

    Wie ich schon gesagt habe, es gibt auch Programmierer, die etwas anders als "08/15" Software und GUIs zu schreiben haben, wo man sowas wie ein Codegenerator nutzlos ist.

    Was bringt Dich zu der Meinung, dass Codegeneration nur für GUI-Builder Sinn macht? Code-Assist, Code-Completion, Erzeugung ganzer Codefragmente - sei es beim Erzeugen neuer Variablen, Methoden, Klassen oder frameworkspezifischer Konstrukte - das sind Features, die Du in jedem Kontext benutzt. Dazu kommt die Intregration von Dokumentation in der IDE und und und ...

    Für mich ist eher 0815, wenn man diese Features nicht braucht. 🤡



  • supertux schrieb:

    nep schrieb:

    Was für mächtige Features hat vi denn?

    schon einige, die werde ich hier nicht beschreiben. Dafür gibt es etliche Websiten (Google hilft) und auch gute ViM Bücher. Was mir persönlich von vim gefällt sind z.b. solche Sachen wie

    • mehrere Dateien gleichzeitig editieren, kann sie nebeneinander, aufeinander, versteck, usw. halten und ein einfaches Ctrl+W+Pfeiltaste reicht, um die Fenster zu wechseln
    • ctags: mit Alt+] kann ich zwischen Funktionen springen
    • Visual Modus kann schon sehr schick sein
    • mehrere Buffer fürs copy&paste
    • Suche/Ersetzung mit regex
    • usw

    Klar, viele Features sind auch in anderen Editoren (emcas hat bestimmt auch alle), aber ich benötige nie eine Maus, um etwas zu machen.

    Lassen wir aber nicht diesen Thread in einem vim-bashing-thread ausarten, wenn du mehr darüber wissen willst, benutze google.

    Naja per google findet man aber nicht (unbedingt sofort) sowas wie "Was bietet mir vi an mächtigen Features für die Programmierung". Ist ja nicht so, dass ich vi(m) noch nie benutzt hätte. Die von dir aufgezählten Sachen sind ja nun wirklich nichts was es nur in vi gibt; bietet dir eigentlich jede IDE mehr oder weniger auch. Kannst auch in vielen IDEs sehr gut ohne Maus leben (nur mit dem Unterschied dass man sie trotzdem benutzen kann, was auch manchmal schneller zum Ziel führt). Das einzige was ich hier als wirklich "mächtig" ansehe ist das, dass man eben auch eine gute Integration mit der Unix-Shell bzw. auch sowas wie Regex's hat (wobei ich es zumindest mal hinterfrage, ob ich mit herkömmlichen Suchen/Ersetzen nicht genauso schnell ans Ziel komme, bevor ich mir einen exakt passenden Regex zusammengefrickelt habe...).

    Ich will auch gar nicht vi runtermachen. Mich hätte nur mal tatsächlich interessiert, was daran denn so wahnsinnig toll ist, wie manche immer behaupten...aber wenn man dann nach konkreten Dingen fragt kommen auch meistens nur Dinge raus, die es bei anderen Editoren auch schon gibt...
    Bzw. wird es ja auch seinen Grund haben, warum in der Softwareindustrie überwiegend IDEs wie Visual Studio und Eclipse eingesetzt wird.

    Also versteh mich nicht falsch. Ich denke auch, jeder soll damit arbeiten was ihm am liebsten ist. Und es gibt sicherlich Fälle wo man auch gut ohne das ganze Birmborium auskommt. Aber gerade bei richtig größeren anspruchsvollen Projekten, wird wohl niemand ernsthaft hergehen und das mit vi zusammenfrickeln...

    supertux schrieb:

    Debugger, Versionskontrolle, Profiler, Unittest-Tools, Servertools, DB-Tools, XML-Tools, GUI-Builder

    ...
    Wie ich schon gesagt habe, es gibt auch Programmierer, die etwas anders als "08/15" Software und GUIs zu schreiben haben, wo man sowas wie ein Codegenerator nutzlos ist.

    Gerade die oben genannten Dinge, werden ganz sicher nicht (oder zumindest ausschließlich) bei 08/15 Software verwendet...



  • byto schrieb:

    Für mich ist eher 0815, wenn man diese Features nicht braucht. 🤡

    Meine Rede 👍

    byto schrieb:

    Für mich klingt das zumindest alles ziemlich altbacken. 🤡

    Naja gibt hier ja auch Leute, die lieber alles selbst zusammenfrickeln als was vorgefertigtes zu benutzen. Das nenne ich dann eher altbacken 🙂



  • supertux schrieb:

    brauche ich nicht (gut debuger schon, gdb tuts auch) in meinen Editor intergriert zu haben. Versionskontrolle, naja ein svn up/ci auf der Konsole (wo vim breits läuft) geht auch schnell, usw.

    und das ist eben der grund warum ides so wertvoll sind.

    weil sie alles integrieren. ich mache zB nie ein explizites commit/checkout - das macht meine ide für mich. und das bei jedem speichern wenn ich so will - oder nur bei jedem build oder nur jedem erfolgreichem build...

    debugger springt direkt an wenn ich die anwendung teste.

    dazu eben refactoring, automatisierte tests, etc. alles in der ide integriert.

    nichts davon ist nur mit ide machbar - aber wenn ich mit vim refactoren will, muss ich ne regex hernehmen. wenn ich ein commit machen will, muss ich commit sagen (meine ide commitet beim beenden automatisch (sofern ich das will)).

    das alles zu sammen macht eine ide einfach besser. das problem ist, dass eine ide nicht gemacht wurde dass man sofort 100% produktiv ist 😉 das hat nichts mit vi-bashing zu tun, sondern vi ist eben ein editor und eine ide hat einen editor dabei.



  • byto schrieb:

    Mergen musst Du also nie oder machst Du das auch per Konsole? 😕 Wie Refactorst Du Deinen Code? Mit Suchen/Ersetzen?

    Mergen muss ich zum Glück nicht oft. Und refactoring, muss ehrlich sagen, sowas habe ich nie gemacht.

    byto schrieb:

    Debugging ohne Maus kommt mir auch umständlich vor, aber hängt wohl davon ab, was der Debugger alles kann. Für mich klingt das zumindest alles ziemlich altbacken. 🤡

    gdb hat sicher graphische Frontends, ich verwende keins.

    byto schrieb:

    Was bringt Dich zu der Meinung, dass Codegeneration nur für GUI-Builder Sinn macht?

    Nicht nur, aber was ich von manchen IDEs kenne (oder früher war es so), hat man beim Erstellen eines neuen graphischen Projkets bereits ein Grundgerüst bekommen. Dasselbe galt, wenn man z.b. ein neues Fenster hinzufügt oder so.

    Bei meiner Arbeit benötige ich jedoch sowas nicht (unter anderem, weil ich keine Klassen habe oder so).

    nep schrieb:

    Naja per google findet man aber nicht (unbedingt sofort) sowas wie "Was bietet mir vi an mächtigen Features für die Programmierung". Ist ja nicht so, dass ich vi(m) noch nie benutzt hätte. Die von dir aufgezählten Sachen sind ja nun wirklich nichts was es nur in vi gibt; bietet dir eigentlich jede IDE mehr oder weniger auch.

    das habe ich auch gesagt. Aber es geht auch darum, wie das Feature angeboten wird. Selbst das Windows Notepad bietet dir eine Such/Ersetzen Funktion. Nur im Notepad muss ich zuerst die Maus bewegen, klicken, warten bis Fenster erscheint, Muster eingeben, mögliche Checkboxes anklicken, OK clicken (also eine reine Klickorgie). In vim genügt es "<ESC>:%s/muster/neu/g", also bin ich mit der Ersetzung in "2" Sekunden fertig.

    Aber gerade bei richtig größeren anspruchsvollen Projekten, wird wohl niemand ernsthaft hergehen und das mit vi zusammenfrickeln...

    Ich weiß es nicht, vielleicht hast du Recht, aber ich kenn trotzdem manche Fälle (z.B. am Frauenhofer Inst.) wo Leute auch nur vim verwenden, egal wie groß das Projekt ist. Hey, ich will auf keinen Fall sagen, dass eine IDE nutzlos ist. Vor Jahren, als ich noch mit Visual Basic gespielt habe, habe ich diese IDE geliebt. Aber in meiner jetzigen Arbeit sehe ich z.b. keinen Grund, warum ich eine IDE verwenden sollte. Es könnte sein, dass das sich später ändert, wenn ich andere Projekte übernehme. Ich will nur sagen, es geht auch ohne und auch effizient.



  • supertux schrieb:

    das habe ich auch gesagt. Aber es geht auch darum, wie das Feature angeboten wird. Selbst das Windows Notepad bietet dir eine Such/Ersetzen Funktion. Nur im Notepad muss ich zuerst die Maus bewegen, klicken, warten bis Fenster erscheint, Muster eingeben, mögliche Checkboxes anklicken, OK clicken (also eine reine Klickorgie). In vim genügt es "<ESC>:%s/muster/neu/g", also bin ich mit der Ersetzung in "2" Sekunden fertig.

    notepad schlägt ja auch niemand vor.

    visual studio zB:

    strg+shift+r
    such-regex eingeben
    tab
    replace string eingeben
    enter

    sind sogar weniger zeichen als im vi 😉



  • In einer guten IDE kannst Du auch alles per Tastenkommando machen.

    Drückst Du z.B. in Eclipse STRG + SHIFT + L, dann öffnet unten links ein kleines Panel mit allen Tastaturkommandos. Du kannst sie natürlich beliebig anpassen, falls gewünscht.

    Wenn ich z.B. eine Klasse geschrieben habe, die an x Stellen in y Klassen genutzt wird. Nun möchte ich nachträglich die Schnittstelle der Klasse extrahieren und überall im Code nach der Schnitstelle programmieren.
    In Eclipse markiere ich den Klassennamen und drücke ALT + SHIFT + T. Es öffnet sich das Refactoring-Popup-Fenster. Ich wähle mit den Pfeiltasten "Extract Interface", gebe im Dialog kurz den Namen der Schnittstelle an und welche Methodensignaturen in die Schnittstelle sollen. Fertig - den Rest macht die IDE.
    Wie machst Du sowas mit dem Editor? Wir könnten ja mal die Zeit stoppen. 😉



  • supertux schrieb:

    Aber es geht auch darum, wie das Feature angeboten wird. Selbst das Windows Notepad bietet dir eine Such/Ersetzen Funktion. Nur im Notepad muss ich zuerst die Maus bewegen, klicken, warten bis Fenster erscheint, Muster eingeben, mögliche Checkboxes anklicken, OK clicken (also eine reine Klickorgie).

    Immer diese Consolentypen die keine Ahnung haben, dass man jedes Menü mit Tasten öffnen kann und jeden Button genauso.



  • byto schrieb:

    In einer guten IDE kannst Du auch alles per Tastenkommando machen.

    Drückst Du z.B. in Eclipse STRG + SHIFT + L, dann öffnet unten links ein kleines Panel mit allen Tastaturkommandos. Du kannst sie natürlich beliebig anpassen, falls gewünscht.

    Wenn ich z.B. eine Klasse geschrieben habe, die an x Stellen in y Klassen genutzt wird. Nun möchte ich nachträglich die Schnittstelle der Klasse extrahieren und überall im Code nach der Schnitstelle programmieren.
    In Eclipse markiere ich den Klassennamen und drücke ALT + SHIFT + T. Es öffnet sich das Refactoring-Popup-Fenster. Ich wähle mit den Pfeiltasten "Extract Interface", gebe im Dialog kurz den Namen der Schnittstelle an und welche Methodensignaturen in die Schnittstelle sollen. Fertig - den Rest macht die IDE.
    Wie machst Du sowas mit dem Editor? Wir könnten ja mal die Zeit stoppen. 😉

    glaub dir schon, dass du mit eclipse schneller bist, als wenn ich alles per Hand machen muss. Das ist mir klar. Ich muss aber keine Klassen schreiben (bin C Entwickler), also habe ich solche Probleme auch gar nicht 😉

    Shade Of Mine schrieb:

    wenn ich ein commit machen will, muss ich commit sagen (meine ide commitet beim beenden automatisch (sofern ich das will)).

    ich kann sicher auch mein vim auch so einstellen, dass beim Verlassen ein commit gemacht wird. Um ehrlich zu sein, ich tue grundsätzlich immer 'svn st' und 'svn diff | vimpager', bevor ich ein commit mache, also sehe ich das nicht wirklich als Vorteil (dass die IDE beim Schließen commitet).

    Shade Of Mine schrieb:

    das alles zu sammen macht eine ide einfach besser. das problem ist, dass eine ide nicht gemacht wurde dass man sofort 100% produktiv ist 😉 das hat nichts mit vi-bashing zu tun, sondern vi ist eben ein editor und eine ide hat einen editor dabei.

    gut, darauf können wir uns einigen.



  • supertux schrieb:

    Und refactoring, muss ehrlich sagen, sowas habe ich nie gemacht.

    das braucht man auch so gut wie nie. refactoring ist irgendwie in der Java-welt sehr beliebt. in C macht das kaum einer. ich glaube slickedit hat einen C-faktorisierer drin, sonst kenne ich keinen.

    übrigens, von wegen wichtige tools:
    falls ihr mal grosse mengen von code durchforsten wollt, den ihr nicht selber geschrieben habt: http://www.scitools.com/products/understand/cpp/product.php
    das ding ist spitze. heisst zwar ... for C++, aber reinen C-code verarbeitet es genau so gut.
    🙂



  • fricky schrieb:

    supertux schrieb:

    Und refactoring, muss ehrlich sagen, sowas habe ich nie gemacht.

    das braucht man auch so gut wie nie

    🙄

    Entweder bist du der Überguru, bei dem der Code sofort zu 100% genau passt vom "Design" her, oder du hast schlicht und einfach keine Ahnung bzw. noch nie was größeres gemacht.

    Ich tippe auf letzteres.



  • Erkann sich kein Refactoring-Tool leisten, deshalb weiß er davon nichts! Schon allein die Aussage, das nur Slickedit sowas können soll, sagt schon alles.



  • CrazyCat schrieb:

    Schon allein die Aussage, das nur Slickedit sowas können soll, sagt schon alles.

    sagt was?
    zeig mir noch mehr tools, die c-code refaktorisieren können.
    🙂



  • nep schrieb:

    Entweder bist du der Überguru, bei dem der Code sofort zu 100% genau passt vom "Design" her, oder du hast schlicht und einfach keine Ahnung bzw. noch nie was größeres gemacht.

    ich kein Überguru oder sonst was, und was du von mir hälst, ist mir auch Wurscht. Wenn ich mir Wikipedias Erklärung durchlese

    Code refactoring is any change to a computer program's code that improves its readability or simplifies its structure without changing its results.

    dann frage ich mich, warum ich ein extra Tool dafür bräuchte. Ich lass mich eines besseren belehren, zeig mir dann einfach ein Bsp, wo es sich lohnt ein Tool dafür zu haben, bw. was man genau darunter versteht.



  • Damit warst doch nicht du, sondern fricky gemeint.



  • nep schrieb:

    Damit warst doch nicht du, sondern fricky gemeint.

    danke, dass du mich für den überguru hälst. nein, du musst jetzt nicht niederknien,
    🙂



  • Refactoring ist nicht nur in Java beliebt sondern in eigentlich jeder OO-Sprache.

    Interessant ist Dein Schluss, dass Refactoring unwichtig sei, weil es für prozedurale Sprachen wie C keine (kaum) Refactoring-Tools gibt.
    Mein Schluss wäre eher: prozedurale Sprachen sind (in den meisten Anwendungsfällen) unwichtig. Warum sich also die Mühe machen, dafür Refactoring-Tools zu schreiben. Zumal ein Großteil derer, die noch prozedural programmieren, offenbar eh altbacken sind und mit IDEs auf Kriegsfuß stehen. Dieser Thread ist der empirische Beweis für diese These. 🤡



  • nep schrieb:

    Damit warst doch nicht du, sondern fricky gemeint.

    angesprochen habe ich mich trotzdem gefühlt, weil ich (um ehrlich zu sein) bis heute noch nie etwas von refactoring gehört habe. Naja, bin nur ein C Programmierer...



  • Was soll man den bei prozeduralen Sprachen groß refactoren?



  • supertux schrieb:

    dann frage ich mich, warum ich ein extra Tool dafür bräuchte. Ich lass mich eines besseren belehren, zeig mir dann einfach ein Bsp, wo es sich lohnt ein Tool dafür zu haben, bw. was man genau darunter versteht.

    Änderungen von Funktionsnamen, Strukturen und Variablennamen lassen sich damit z.B. schnell und sicher (auch projektübergreifend) erledigen. Man kann sowas zwar auch mit Search & Replace machen, dabei wird aber in der Regel der Kontext nicht beachtet (z.B. wenn ein zufällig gleicher Variablenname an anderer Stelle in der gleichen Datei vorkommt). Ein Refactoring-Tool senkt hier die Fehlerquote erheblich.


Anmelden zum Antworten