Forum: Ausbildung, Studium & Beruf Nachhaltige Softwareentwicklung


von CleanCoder (Gast)


Lesenswert?

Eine große Firma (>50k MA) hat für meinen Arbeitgeber eine große Anlage 
gebaut. Neben der SPS gibt es eine PC-basierte Software, über die sich 
das System bedienen lässt. Diese ist vollständig in Visual Basic 
programmiert. Viele Codefragmente sind noch aus den 90ern. Der 
Programmierer ist offensichtlich damals damit eingestiegen und hat für 
neue Projekte den alten Code immer wieder kopiert und angepasst. Im 
Laufe der Zeit hat er sich also eine eigene "Library" angelegt, die 
heute sein "Kapital" darstellt. Leider ist VB mittlerweile hoffnungslos 
veraltet, daher die Frage:

Wenn ich heute als Softwareentwickler anfange und ich im Job totale 
Freiheit habe (Programmiersprachen, Systemumgebungen), welche Strategie 
ist da im Hinblick auf meine berufliche Zukunft am nachhaltigsten? Was 
ist euer Kapital? Wie meistert ihr die Herausforderung des 
technologischen Fortschritts? Ist Migration für euch ein Thema?

von Martin L. (martin_l795)


Lesenswert?

"Nachhaltig" ist das Gegenteil von Fortschritt, würde ich nicht machen.

von ich (Gast)


Lesenswert?

C oder C++, vll. C#
Möglich vieles als Lib schreiben. ORDENTLICHE Doku. wahrscheinlich 
statisch gelinkt, sonst hast halt probleme mit sich evtl. ändernde API. 
(also eine git laufen lassen).

von CleanCoder (Gast)


Lesenswert?

Martin L. schrieb:
> "Nachhaltig" ist das Gegenteil von Fortschritt, würde ich nicht machen.

Gemeint war: Nachhaltig = nicht-arbeitslos

von Horst S. (Gast)


Lesenswert?

Martin L. schrieb:
> "Nachhaltig" ist das Gegenteil von Fortschritt, würde ich nicht
> machen.

Der war gut...

Zum Thema:
Wenn Du alle drei Jahre den Job wechselst, überrollen Dich Deine 
Altlasten eher selten.

Du kannst Dich allerdings auch in manchen Firmen zur Unsterblichkeit/ 
Unkündbarkeit mit genau diesen Altlasten hocharbeiten. Wenn es Dir 
gelingt, Dein kompliziertes, fehleranfälliges und unwartbares Programm 
in den produktiven Einsatz einzuschleusen, bekommst Du auch bestimmt 
eine Inventarnummer, so dass Dich der Vertrieb gleich mit auf die 
Ersatzteilliste packen kann.

von rcc (Gast)


Lesenswert?

CleanCoder schrieb:
> Was ist euer Kapital?

Die Erfahrung wie man Projekte angeht, wie man Probleme löst und 
Codeschnippsel die man immer wieder braucht. Sprache ist sekundär wenn 
man weiß wie das Problem gelöst wird kann man das in jeder Sprache 
machen. Normal ist durch den Arbeitgeber vorgegeben was zu nehmen ist,

von db8fs (Gast)


Lesenswert?

gibts hier auch schrieb im Beitrag #4203500:
> Also möglichst viele unnütze Zwischenklassen und noch mehr
> Zwischenschichten und jede Schicht wird noch mal durch zig Design
> Patterns gegliedert inkl. komplexer Klassenstruktur wie z.B. zig Logiken
> in n Oberklassen auslagern, selbst wenn die Oberklasse nur 1-2 mal in
> einer Subklasse gebraucht wird und sehr viel generisches Coding, wo man
> ohne debuggen kaum versteht was da überhaupt gemacht wird.

Widerspricht deinem Ansatz 'schönes Coding'. Guter Code erklärt sich 
fast von selbst. Und prinzipiell ist es richtig: mit gescheitem 
Refactoring lässt sich mehr erreichen. Sind aber Erfahrungswerte, die 
auch gemacht werden müssen.

> Sowas ist
> heute der Trend. In so einem Coding kann man nicht mal eben ein Feld
> hinzufügen, neeein da muss man erst zig Klassen erweitern und in allen n
> Schichten entsprechende Anpassungen vornehmen bevor das geht. So dauern
> auch einfache Entwicklungen sehr lange.

Hast du nen Haufen Matsch als softwaretechnische Grundlage, Misch-Masch 
von C und C++ mit wildester Pointer-Jongliererei, Riesen-Anforderungen 
zu stemmen und 'nen utopischen Zeitplan - dann kann das Projekt nur 
prototypischen Charakter haben. Selbst das beste Refactoring kostet 
Zeit.

von P. M. (o-o)


Lesenswert?

Programmiersprache, Libraries und Betriebssystemplattform wählen, die zu 
den verbreitesten, etabliertesten und freiesten Standards gehören. Was 
vor 20 Jahren mit C/C++ und ihren Standardlibraries, und für die 
Unix/Linux-Plattform geschrieben wurde, dürfte sich auch heute noch 
compilieren und laufen lassen. Und vermutlich auch noch in 20 weiteren 
Jahren.

Kleinere, firmenabhängige Produkte wie VB, Java oder C# werden 
vermutlich irgendwann durch etwas anderes ersetzt.

Zusätzlich würde ich strikte zwischen der Anwendungslogik und der 
"Peripherie" (GUI, Netzwerk, Datenbankanbindung, ...) trennen. Das ist 
alles Zeugs, das irgendwann veraltet, während Code in C/C++ vermutlich 
auch in 100 Jahren noch gleich aussieht.

von Freelancer Jack (Gast)


Lesenswert?

CleanCoder schrieb:

> Wenn ich heute als Softwareentwickler anfange und ich im Job totale
> Freiheit habe (Programmiersprachen, Systemumgebungen), welche Strategie
> ist da im Hinblick auf meine berufliche Zukunft am nachhaltigsten?
> Was ist euer Kapital?
Hirn und Erfahrung.

> Wie meistert ihr die Herausforderung des
> technologischen Fortschritts?
Kommt auf das Projekt an.

> Ist Migration für euch ein Thema?
Jeden Tag steht einer auf der Matte mit seinen Altlasten. Z.B. 
SPS-Heinzen mit VNC-Gemurkse als Frontend, sowas wollen die auf Kunden 
loslassen und wundern sich dass das keiner haben will.

Wenn es die Anforderungen zulassen: Als Webanwendung ohne sterbende 
Plugins
Ich mach fast nur noch Webanwendungen, ist dann von Haus aus schon von 
jedem Rechner aus nutzbar, Handy, Tablett, alles kein Problem. 
Unterschiedlche GUIs und Sprachversionen z.B. für rechts nach links 
Sprachen,... kann jeder Browser von Haus aus, superflexibel per 
Stylesheets anpassbar. Alles was irgendwie mit Netzfunktionalität zu tun 
hat (Logs per Email, speichern in mehreren DBs weltweit verteilt, 
verschlüsselte Verbindungen,...) sowas sind im Webentwicklungsbereich 
Abfallprodukte und schnell implementiert.

Wer heute noch mit klassischen GUI-Toolkits Anwendungen entwickeln muss 
die entspr. Funktionalität wie oben aufweisen muss hat mein tiefstes 
Beileid.

von MaWin (Gast)


Lesenswert?

CleanCoder schrieb:
> Leider ist VB mittlerweile hoffnungslos veraltet

Das war offensichtlich sehr nachhaltig.

Sogar Sachen aus den Neunzigern werden darin heute noch verwendet, statt 
daß sie verschwenderisch mit human resources schlechter noch mal neu 
entwickelt werden, bloss weil EINE MODE sich ändert.

> Wenn ich heute als Softwareentwickler anfange und ich im Job totale
> Freiheit habe (Programmiersprachen, Systemumgebungen), welche Strategie
> ist da im Hinblick auf meine berufliche Zukunft am nachhaltigsten? Was

Hochproprietäre Dinge lernen und benutzen, das kann dann bis zu deiner 
Rente kein anderer. Der hat's richtig gemacht:

> die heute sein "Kapital" darstellt

ich kenne das Programm nicht, weiß aber, daß man auch in VB sehr 
übersichtliche Programme schreiben kann, die einfach wartbar sind
(deutlich besser als in Cobol oder Fortran)

Manche Systeme verwenden VB als interne Skriptsprache (beispielsweise 
Mach3 CNC) .

Die aktuelle Mode wie Python oder Ruby sind jedenfalls nicht besser, 
sondern eher mehr Verhau.

von Inschenör (Gast)


Lesenswert?

Freelancer Jack schrieb:
> Wenn es die Anforderungen zulassen: Als Webanwendung ohne sterbende
> Plugins

Ich glaube inzwischen auch, dass das wohl die nachhaltigste Möglichkeit 
ist. HTML und Javascript sind ja sehr etablierte Standards und es gibt 
viele virtuelle Maschinen, die den Standard unterstützen. Außerdem wird 
es von jedem halbwegs modernen System unterstützt. Und man hat eine 
enorme Flexibilität.

Inzwischen lässt sich ja auch fast jede Sprache auf Javascript 
übersetzen. Man kann also z.B. auch alten C-Code weiter verwenden. Auch 
Interpreter in anderen Sprachen (z.B. Python) laufen auf der "virtuellen 
Maschine".

von Michael B. (laberkopp)


Lesenswert?

Inschenör schrieb:
> HTML und Javascript sind ja sehr etablierte Standards

Prust, komm du mal und versuche eine WebSeite von NCSA Mosaic auf einem 
aktuellen Browser darzustellen, oder überlege warum es so was gibt
http://windows.microsoft.com/de-de/internet-explorer/use-compatibility-view
und wundere dich nicht, wenn dein Smartphone leider nicht in der Lage 
ist, eine lesbare Seite darzustellen, die du schon auf dem Desktop 
gesehen hast.

Gerade HTML ist ein übler Verhau, bei dem nicht nur Neues hinzuerfunden 
wird, sondern Bestehendes verändert oder weggelassen wird und absolut 
nicht zukunftstauglich.

von Cyblord -. (cyblord)


Lesenswert?

Michael B. schrieb:
> Inschenör schrieb:
>> HTML und Javascript sind ja sehr etablierte Standards
>
> Prust, komm du mal und versuche eine WebSeite von NCSA Mosaic auf einem
> aktuellen Browser darzustellen, oder überlege warum es so was gibt
> http://windows.microsoft.com/de-de/internet-explorer/use-compatibility-view
> und wundere dich nicht, wenn dein Smartphone leider nicht in der Lage
> ist, eine lesbare Seite darzustellen, die du schon auf dem Desktop
> gesehen hast.
Das sind alles keine Probleme des Standards sondern der Implementierung 
in den Browsern. Es ist doch wohl bekannt dass IE gerne eigene Wege ging 
und den Standard eben NICHT korrekt umsetzte. Heute ist das Problem 
allerdings weitgehend aus der Welt.

> Gerade HTML ist ein übler Verhau, bei dem nicht nur Neues hinzuerfunden
> wird, sondern Bestehendes verändert oder weggelassen wird und absolut
> nicht zukunftstauglich.
Dafür funktioniert das Web aber erstaunlich gut oder nicht? Dein Post 
ist absolut gehaltlos und lediglich HTML gebashe. Aber dein Nick sagt ja 
schon alles. Nomen est Omen.

: Bearbeitet durch User
von ffff (Gast)


Lesenswert?

Ich glaube ihr habt die Frage ALLE falsch verstanden:

CleanCoder schrieb:
> Wenn ich heute als Softwareentwickler anfange und ich im Job totale
> Freiheit habe (Programmiersprachen, Systemumgebungen), welche Strategie
> ist da im Hinblick auf meine berufliche Zukunft am nachhaltigsten? Was
> ist euer Kapital? Wie meistert ihr die Herausforderung des
> technologischen Fortschritts?...

Ich betone nochmal:

CleanCoder schrieb:
>  welche Strategie ist da im Hinblick auf meine berufliche Zukunft am 
nachhaltigsten?


Die Strategie ist ganz klar:
-Programmiersprache nehmen, die sonst keine alte Sau kann.
-Unleserlichen Code ohne Ende schreiben, den nur DU verstehst.
-Am besten klingonisch dokumentieren!
-Dazu noch so spässchen einbauen wie
1
#define 5 2

-> Dannach bist du für dein ganzes Leben unkündbar, wenn die Firma mit 
der SW Geld verdienen will. Und wenn du ein gutes Arbeitszeugnis wg. 
Wechsel willst, dann kriegst du das auch(musst halt dafür ne Doku oderr 
so schreiben).

->ABER: so sollte es eigentlich nicht laufen dürfen, da du beim ersten 
Code-Review fristlos gekündigt werden solltest. Wenn es sowas aber nicht 
gibt, du deine V1.0 releasen kannst, die verkauft wird, dann mein lieber 
Freund bist du ein gemachter Mann!

von abcd (Gast)


Lesenswert?

ffff schrieb:
> ->ABER: so sollte es eigentlich nicht laufen dürfen, da du beim ersten
> Code-Review fristlos gekündigt werden solltest. Wenn es sowas aber nicht
> gibt, du deine V1.0 releasen kannst, die verkauft wird, dann mein lieber
> Freund bist du ein gemachter Mann!

Wahre Wort. Musste erst herzhaft lachen, aber es ist leider Fakt.

Ich bin in meinem Unternehmen als Code-Reviewer zuständig. Nahezu gibt 
es in jedem Commit schwerste potenzielle Fehler. Von den stylistischen 
Sachen mal abgesehen.

Interessieren tut's keine Sau.

von Inschenör (Gast)


Lesenswert?

Michael B. schrieb:
> Prust, komm du mal und versuche eine WebSeite von NCSA Mosaic auf einem
> aktuellen Browser darzustellen, oder überlege warum es so was gibt

Das war vielleicht etwas falsch ausgedrückt. Natürlich gibt es 
verschiedenartige Implementierungen. Ich wollte eigentlich nur sagen, 
dass JavaScript und HTML unheimlich verbreitet sind und von mehreren 
Herstellern gepusht werden.

Michael B. schrieb:
> Gerade HTML ist ein übler Verhau, bei dem nicht nur Neues hinzuerfunden
> wird, sondern Bestehendes verändert oder weggelassen wird und absolut
> nicht zukunftstauglich.

Das hat doch mit zukunftstauglich nichts zu tun. Zukunftstauglich heißt 
für mich, dass eine Weiterentwicklung statt findet. Und da gibt es im 
Moment wohl keine Sprache, die sich schneller weiterentwickelt. Dass so 
eine Weiterentwicklung auch holprig verläuft, ist eigentlich logisch.

Und dass sich nicht unbedingt die technisch eleganteste Lösung, sondern 
dass es hin und wieder sogar genau umgekehrt ist, sollte eigentlich auch 
bekannt sein.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.