Jakie są zalety programowania przy użyciu przestarzałych technologii? [Zamknięte]

28

Trochę tła :

Pracuję w dużej firmie, używam Windows XP i koduję Winforms w VB6 / VB.Net i niektóre WebFormy w VB.Net (95% kod konserwacji). Mam jeden ekran 4: 3 19 ". Niedługo wydarzy się bardziej nowoczesna wersja systemu Windows, a dźwięk nie będzie działał od podstaw!

Nie powiedziano mi o tym, kiedy dołączyłem do firmy, wprowadzono mnie w błąd, sądząc, że będę pracować z dużo nowszymi technologiami i strukturami.

Mam o wiele bardziej aktualne doświadczenie z poprzednich prac, zarówno z bardziej nowoczesnymi frameworkami, jak i innymi językami programowania, a kiedy spotykam się z przyjaciółmi programistów z innych firm, słyszę tylko o tym, jak korzystają z najnowszej platformy ASP MVC, lub Vagrant / Ruby on Rails / etc i dostaję zielone oczy!

Mógłbym dość szybko zająć się inną pracą, ale czuję, że powinienem dać temu jeszcze jedną szansę.

Pytanie :

Próbuję się przekonać, że moja obecna praca nie jest taka zła. Jakie są więc zalety tej roli? Czy są zalety pracy z przestarzałymi technologiami? Może niektóre techniki, których nie wybrałbym przy pracy z bardziej nowoczesnymi? Czy jest to miejsce, w którym umierają kariery i powinienem wyjść, póki jeszcze mam swoją duszę?

więzień 24601
źródło
1
Możesz przeformułować treść pytania, aby oddzielić historię osobistą od pytania podstawowego.
DougM
2
Możesz udawać, że budujesz rakiety lub pracujesz nad kontrolą ruchu lotniczego. Te pola zazwyczaj używają naprawdę starej technologii, ponieważ do tego momentu wszystkie błędy są naprawione lub znane. Ale nawet inżynierowie rakiet lub kontroli ruchu lotniczego nie mogliby dotknąć VB6 słupem o długości 10 stóp. :)
DXM
3
Bezpieczeństwo pracy? ....
Robert Harvey
2
Ponad dziesięć lat temu kodowałem w Delphi. Podobało mi się, to był dobry język, lepszy niż YB Yardy Yardy, ale nie tak to wyglądało. Skoczyłem. Ale do dnia dzisiejszego praca Delphi wciąż rośnie i dobrze płacą! Cholera.
MrWhite
11
Chociaż podziwiam fakt, że próbujesz jak najlepiej wykorzystać złą sytuację, nie próbuj przekonywać siebie, że twoja obecna praca nie jest aż tak zła. Mówiąc z doświadczenia: zbyt długie pozostawanie przy pracy z przestarzałą technologią może łatwo przerodzić się w dziurę, która naprawdę trudno wykopać z rynku pracy. Przynajmniej spróbuj grać z bardziej nowoczesną technologią, jeśli to możliwe.
Evicatos

Odpowiedzi:

26

słyszę tylko o tym, jak korzystają z najnowszego frameworku ASP MVC lub Vagrant / Ruby on Rails / itp. I dostaję zielone oczy!

Ach, ale tam bawią się zabawkami, a tam wykonujesz prawdziwą pracę, używając narzędzia, które wykonuje pracę, aby znaleźć rozwiązanie.

Właśnie to powinieneś wziąć pod uwagę - oprogramowanie to zbyt często romans amatorski z ludźmi przechodzącymi z jednej fajnej nowej technologii do następnej najnowszej mody. Są też inni, którzy traktują to jako bardziej profesjonalną karierę, w której narzędzia nie mają tak dużego znaczenia, jak produkt lub rozwiązanie, które tworzysz.

Są miejsca, w których starą technologię należy zastąpić czymś nowym, ale generalnie są to tylko ulepszenia, a nie hurtowe zamienniki. Np. VB6 zostaje uaktualniony do VB.NET, Visual Studio 2002 zostaje uaktualniony do Visual Studio 2012. Każdy, kto przejdzie całkowitą przeróbkę, zawsze przekonuje się, że nowe narzędzia nie są tak fantastyczne. (dlatego między innymi Joel twierdzi, że przepisywanie zawsze jest złą odpowiedzią)

Skoncentruj się więc na osiąganiu celów i ulepszaj je tam, gdzie możesz, powoli i ostrożnie tam, gdzie ma to sens - nie dlatego, że chcesz bawić się najnowszymi zabawkami (które i tak wkrótce zostaną odrzucone, a absolutną ostatnią rzeczą, jakiej chcesz, jest utrzymanie system napisany przez ludzi, którzy kodowali w zeszłorocznej fajnej technologii)

gbjbaanb
źródło
1
Wersja VB6 nie była bardziej uaktualniona do VB.NET niż wersja DOS do Windows NT. FWIW.
DougM
21

Istnieje kilka korzyści dla firmy polegającej na stosowaniu przestarzałych technologii:

  1. Starsze rzeczy czasami nie działają z nowymi

    Firma mogła zainwestować dużą ilość pieniędzy w systemy, które po prostu nie działają z nowszymi językami lub systemami operacyjnymi. Klasycznym przykładem jest wiele intranetowych aplikacji internetowych, które są kompatybilne tylko z IE6 i tylko IE6. Wybór pomiędzy trzymaniem się Windows XP + IE6 a wyrzuceniem działającego systemu i inwestowaniem pieniędzy w nowy nie jest oczywisty.

  2. Zmiana ze względu na zmianę nie jest mądrym wyborem

    Przykład: wiele banków nadal utrzymuje aplikacje pierwotnie napisane w języku COBOL. Kiedy te rzeczy działają, dlaczego firma zdecyduje się napisać je w innym języku, biorąc pod uwagę koszt przepisania dużego systemu o dużym znaczeniu dla firmy, a także ryzyko popełnienia błędu, wprowadzając mnóstwo nowych błędów? (Jednym z powodów jest opisany poniżej)

  3. Licencje drogie

    Załóżmy, że firma ma kilkaset komputerów stacjonarnych korzystających z systemu Windows XP. Chcą przejść na system Windows 8. Ile kosztuje jedna licencja systemu Windows 8 Enterprise? Co jeśli pomnożymy ten koszt przez liczbę maszyn?

    Jest jeszcze gorzej dla serwerów. Pojedyncza licencja na Oracle lub Microsoft SQL Server kosztuje około 30 000 USD - 40 000 USD. Jeśli firma ma, powiedzmy, pięćdziesiąt serwerów baz danych, szybko staje się bardzo droga nawet przy licencjonowaniu zbiorowym.

    W mojej firmie utknęliśmy w programie Visual Studio 2010. Występują liczne błędy i wiemy, że nigdy nie zostaną rozwiązane, ponieważ Microsoft porzucił tę wersję. Ale 13 000 USD (biorąc pod uwagę, że potrzebujemy wersji Ultimate ze względu na jej unikalne funkcje, które są niedostępne w innych wersjach) jest zbyt wysoka, abyśmy mogli zaktualizować ją do Visual Studio 2013.

To powiedziawszy, istnieją również ważne wady.

  1. Starsze rzeczy nie przyciągają nowych talentów

    To jeden z problemów firm, które utrzymują aplikacje COBOL: trudno jest znaleźć niedrogich programistów. Również praca na komputerach mainframe i pisanie kodu COBOL nie jest czymś atrakcyjnym dla osób kreatywnych.

    Chociaż są dobrym wyborem dla systemów szkieletowych, które wymagają zachowania solidności, te systemy i języki nie będą dobrze pasować do produktów wymagających ciągłych innowacji.

  2. Stare nie znaczy bezpieczne

    Ponieważ przepisywanie produktu w nowym języku może wprowadzać nowe błędy, utrzymywanie starych systemów, które nie są już obsługiwane, może być również niebezpieczne. Wyobraź sobie, że w systemie Windows 98 znaleziono błąd, który mógłby zagrozić całemu systemowi: czy Microsoft wyda aktualizację, aby go rozwiązać?

  3. Dziedzictwo jest wirusowe

    Niezgodność między starszymi i nowszymi systemami oznacza, że ​​często, gdy trzymasz się starego produktu, języka lub infrastruktury, nie będziesz mógł dokonać aktualizacji w innym miejscu. Stara aplikacja intranetowa, która działa tylko na IE6, prowadzi do systemu Windows XP na wszystkich komputerach, co oznacza, że ​​nie można migrować do nowej wersji usługi Active Directory, co oznacza, że ​​nie można używać nowych aplikacji, które wymagają najnowszej wersji usługi Active Directory, oraz wkrótce.

  4. Wydajność

    Nowe wersje produktów wprowadzają nowe funkcje, które czasem zwiększają wydajność. Zadanie, które zajęłoby godzinę w programie Visual Basic 6.0, można wykonać w niecałą godzinę w programie Visual Studio 2013, ponieważ Visual Studio 2013 i .NET Framework 4.5 oferują ulepszone Intellisense, Entity Framework i tysiące innych rzeczy, które redukują kod pisać, zwiększyć szybkość pisania kodu i zmniejszyć ryzyko wprowadzenia błędów.

    Jeśli przykład nie jest wystarczająco jasny, oto kolejny. W systemie Windows 3.1 administratorzy systemu konfigurowali każdą maszynę ręcznie jeden po drugim (chyba że istniała pewna automatyzacja, o której nie wiem). Dzisiaj użyliby PXE i Windows Assessment and Deployment Kit do automatycznego wdrożenia nowego systemu operacyjnego i oprogramowania na tysiącach komputerów.

    Korzystanie ze starszych wersji może po prostu stać się zbyt kosztowne. Może nie być to oczywiste dla niektórych użytkowników, którzy są zadowoleni z systemu Windows 95, ale jest znacznie bardziej oczywiste dla programistów, administratorów systemów, projektantów, naukowców i innych osób, które w dużej mierze polegają na mocy sprzętu i aplikacji.

Arseni Mourzenko
źródło
Użyj Linuxa i Eclipse lub MonoDevelop. Koszt Licensd: 0 USD.
Demi
7

Rozwój przestarzałych technologii wiąże się z pewnymi zaletami, ale niezależnie od tego, czy przeważają one koszty związane z utratą płynności przy ich zastępowaniu, a ból związany z pracą z nimi jest osobistym wyborem między tobą a nimi.

Mogę wymyślić trzy zalety pracy z przestarzałą, zastąpioną technologią:

  1. Znajomość samej starszej technologii

    Jedynymi wciąż używanymi starymi technologiami są te, które ktoś gdzieś uznał za tańsze w utrzymaniu niż w wymianie. Umiejętność wyliczenia doświadczenia zawodowego z tak starszą technologią może sama w sobie pomóc w zdobyciu innej pracy w tym samym obszarze. Wraz ze wzrostem liczby deweloperów rośnie premia, którą można pobierać za pracę nad takimi programami.

  2. Szansa na ćwiczenie uczenia się czegoś nowego

    Naprawdę nie jesteś programistą, jeśli możesz programować tylko w językach, których nauczył cię ktoś inny. Możliwość dostosowania swoich technik i modeli do starszych technologii wymaga dokładnie takich samych umiejętności, jakie byłyby potrzebne do dostosowania się do nowej technologii.

  3. Głębsze zrozumienie, dlaczego zostały zastąpione

    Trudno wyjaśnić nieprogramiściowi typu HR lub Executive, dlaczego VB.NET lub C # jest lepszy od VB6, jeśli nie znasz samej technologii. A jeśli nie jesteś do końca zaznajomiony z tym ostatnim, poznanie tego, co zastąpili, może pomóc zrozumieć, dlaczego zastąpienia zostały napisane, jak były.


W związku z powyższym nie ma absolutnie żadnego powodu, dla którego firma powinna utrzymywać jakąkolwiek aplikację napisaną w technologii, która stała się tak przestarzała.

Jeśli można go pozostawić w spokoju, dopóki środowisko wykonawcze nie powiedzie się z powodu jakiegoś nieudokumentowanego błędu, to jedno - ale każda godzina, którą programista spędza na starej technologii bez planu przejścia, jest długiem technicznym, który przedsiębiorstwo będzie musiało ostatecznie spłacić.

DougM
źródło
9
Nie zgadzam się z „absolutnie nie ma powodu, dla którego firma powinna utrzymywać jakąkolwiek aplikację napisaną w technologii, która stała się tak przestarzała”. Jeśli firma zarabia więcej, niż kosztuje utrzymanie, to powinna ją utrzymać. Powinni starać się zastąpić go bardziej nowoczesnym rozwiązaniem, ale chociaż przynosi on pieniądze i nie można go łatwo wymienić, należy go utrzymać.
Stephen
Czasami jest to prawda, ale jeśli oprogramowanie „zarabia” pieniądze zamiast „oszczędzać” pieniądze, ktoś robi krzywdę swoim klientom.
DougM
Oprogramowanie może zaoszczędzić pieniądze dla klienta i zrobić to dla firmy, która je rozwija. Nie wszystko jest aplikacją wewnętrzną. Do cholery, oprogramowanie może również zarabiać pieniądze dla klienta. Spójrz na Visual Studio. Zarabia zarówno dla sprzedawcy (Microsoft), jak i kupującego (domy oprogramowania).
Stephen
Tak, dlatego tak to powiedziałem. Powtarzając, jeśli sprzedajesz oprogramowanie zbudowane na martwej od dziesięciu lat platformie, wyrządzasz swoim klientom krzywdę.
DougM
1
Nie zgodziłbym się. Jako programista chciałbym zawsze korzystać z najnowszych technologii. Ale z punktu widzenia użytkownika mogą one uzyskać wielką wartość ze starego, utrzymywanego programu VB6. Przebudowa od podstaw może nie być ekonomiczna ani praktyczna, ale warto ją zachować (dotyczy to szczególnie oprogramowania specjalistycznego, które ma bardzo mały rynek niszowy).
Stephen
6

W pewnym momencie firma będzie musiała martwić się o koniec życia VB6, ale niestety VB.NET ma trochę oddechu.

Czy istnieje jakiś powód, dla którego musisz pracować na jednym małym monitorze? To bardziej przypomina, że ​​firma jest tania niż martwi się dobrze przetestowanymi technologiami. To nie tak, że kilka 21-calowych monitorów wprowadzi błędy.

Aby zachować swoje umiejętności i zarabiać za to, sugeruję przyjrzenie się twojej kompilacji, testowaniu i wdrażaniu konfiguracji. Może to być okazja do rozpoczęcia wprowadzania niektórych nowszych technologii przy użyciu rake, PowerShell i / lub nant do kompilacji i wdrażania. Jeśli nie masz testów jednostkowych, zacznij je dodawać.

Na koniec dnia, jeśli firma nie będzie w przestrzeni technologicznej, zawsze będzie dla nich drugorzędna. Zachowanie stabilności w celu ochrony ich podstawowej działalności biznesowej ma sens.

Będę unikać udzielania porad dotyczących kariery, jestem pewien, że inni opisali podstawy.

crad
źródło
3

Istnieje wiele zalet:

1) Będzie wiele zasobów dostępnych dla technologii, o ile nie były one niejasne i nie były szeroko stosowane.

2) Mam nadzieję, że inni w firmie będą dobrze zorientowani w technologiach, ponieważ się nie zmienili.

3) Jeśli nie ma dużo nowych rozwiązań, możesz pracować nad refaktoryzacją starego kodu, aby był czystszy lub szybszy. Zauważ, że typ sklepu, który utrzymuje tę starą technologię, prawdopodobnie będzie przeciwny zmianie jakiegokolwiek kodu, który „działa”, pomimo tego, jak obrzydliwe może być.

aglassman
źródło
5
Jeśli kod działa, nie należy go zmieniać, jeśli można go uniknąć. Za każdym razem, gdy programista dokonuje zmiany, istnieje możliwość wprowadzenia nowych błędów - a nowe błędy w dużej mierze negują korzyści wynikające ze stosowania starego kodu.
DougM
Zmiana ze względu na to oczywiście nie jest dobrym pomysłem. Jednak gdy oprogramowanie osiągnie pewien poziom dojrzałości, często zwraca się uwagę na strojenie wolniejszych części aplikacji.
Robbie Dee
3

Skoncentruję się na drugiej stronie tego pytania, tj. Wadach korzystania z nowych technologii, ponieważ zalety przestarzałych technologii zostały w wystarczającym stopniu uwzględnione w innych odpowiedziach.

Wciąż mamy dużą bazę kodu Visual Studio 6 i nie wygląda na to, że zostanie ona wkrótce zastąpiona.

Nadal pracujemy nad nowymi technologiami, w których możemy opracowywać nowe rozwiązania.

Jak mi się wydaje, można napisać VB.NET, który całkiem ładnie współpracuje ze starszym kodem VB6 przy użyciu COM.

Korzystanie z najnowocześniejszych technologii jest niewątpliwie zabawne, ponieważ często przynoszą znaczące korzyści w zakresie wydajności. Jednak drugą stroną jest to, że możesz natknąć się na błąd / usterkę, która cofnie cię o kilka dni / tygodni. Nie bez powodu nazywa się to krwawieniem!

Nawet gdyby firma zebrała pieniądze na aktualizację oprogramowania, to (jak przekonałem się z własnego doświadczenia) może być nieco trudne, niezależnie od tego, którą firmę wybierze:

Port oprogramowania

Oprogramowanie zostało przepisane, ale musi wyglądać dokładnie tak samo jak stare oprogramowanie, aby nie denerwować użytkowników. Radość z pracy z nowymi technologiami jest nadrzędna przez fakt, że nie można używać żadnego z nowych programów GUI.

Aktualizacja programu Visual Studio

Tak naprawdę nie możesz właściwie korzystać z żadnej z nowych funkcji, ponieważ spędzasz dużo czasu na rozwiązywaniu problemów w kodzie, gdzie działa dobrze w jednej wersji studia, ale nie w drugiej.

Migracja funkcjonalna

Migrujesz oprogramowanie zachowując podstawową funkcjonalność. Pozwala to na największą swobodę z punktu widzenia programisty, ale mogą zostać wprowadzone błędy, które mogą spowodować, że firma zakwestionuje wartość takiego ćwiczenia, o ile nie zostaną również uwzględnione nowe funkcje o wartości dodanej.

Nirvana dla większości programistów to wysokiej jakości szkolenie na temat nowoczesnych technologii, szansa na przećwiczenie tego, czego się nauczyłeś, a następnie projekt greenfield, aby odciąć zęby.

To, co powinieneś zrobić, zależy w dużej mierze od rodzaju osoby, którą jesteś. Neophiles zawsze będzie chciał pracować z nowymi rzeczami, podczas gdy luddites uważają, że stara technologia jest najlepsza. Większość z nas jest gdzieś pośrodku. Musisz poćwiczyć w miejscu, w którym czujesz się komfortowo. Jeśli uważasz, że możesz żyć z obecnym status quo, to świetnie, w przeciwnym razie weź monetę na razie i miej oko na pół, aby uzyskać bardziej odpowiednią pozycję.

Robbie Dee
źródło
1

Może nie jest to dokładnie to, o co prosisz, ale mam kilka sugestii:

Myślę, że największą korzyścią jest to, co możesz zaoferować swojemu pracodawcy pod względem wiedzy specjalistycznej, kiedy w końcu zdają sobie sprawę, że muszą przeprowadzić migrację. XP zostanie wycofane w tym roku, więc wyobrażam sobie, że Twój dział IT już rozważa strategię migracji. (Jeśli nie, przygotuj swoje CV, ponieważ ich firma nie będzie długo w pobliżu).

Mając to na uwadze, rozsądne może być rozpoczęcie tworzenia listy zalet migracji podstawowych zestawów narzędzi oprogramowania w połączeniu z migracją systemu operacyjnego / platformy. Pomóż edukować swój technicznie nieopłacalny łańcuch zarządzania w zakresie ROI w odniesieniu do nowych technologii. Twoi menedżerowie nie dadzą się zwieść ramom typu whiz-bang i technologicznym zabawkom, ale powinni być bardzo zainteresowani twoimi dalekosiężnymi prognozami dotyczącymi porównawczych kosztów bieżących wydatków na utrzymanie, przyszłego rozwoju itp.

W tej samej linii możesz skorzystać z okazji, aby dowiedzieć się, jaki jest poziom zadowolenia klientów (pracowników korzystających z Twojego oprogramowania). Jakie ulepszenia chcieliby zobaczyć? Jakie błędy doprowadzają ich do szaleństwa? Jakie funkcje znacznie poprawiłyby ich wydajność? Jeśli możesz pokazać swoim pracodawcom, że nowa inwestycja w technologię miałaby demonstracyjny wpływ na ich wyniki finansowe, możesz zdobyć tytuł Technical Migration Manager.

I TO wyglądałoby dobrze na ŻADNYM życiorysie.

AKTUALIZACJA: Wygląda na to, że nie jesteś sam w swojej branży: „ 95% bankomatów na świecie korzysta z XP ”. Nie zrozum mnie źle: XP jest świetne - zawsze byłem fanem. Ale rzeczywistość jest taka, że ​​po zakończeniu łatek bezpieczeństwa i aktualizacji XP nie będzie opłacalnym produktem dla banku. Twoim zadaniem (ze względu na klientów Twojego banku) jest uprzejmie, ale uporczywie informowanie swoich menedżerów, że ostatecznie zapłacą znacznie więcej (w ramach rozszerzonych umów serwisowych lub łagodzenia ataków), aby utrzymać XP po dacie przejścia na emeryturę. Jak wskazał link @ RobbieDee: masz czas do 14 lipca 2015 r. To wystarczy (jeśli zaczniesz teraz) na zaprojektowanie, wdrożenie i wdrożenie systemu zastępczego.

(Ale NIE próbuj sprzedawać tego pomysłu facetowi, który właśnie wypisał się z instalacji XP w całym przedsiębiorstwie. On nie jest twoim sprzymierzeńcem. Przy takim osądzie jego dni w tej roli są policzone. Po prostu spokojnie pracuj wokół niego, aż dominują mądrzejsze głowy).

kmote
źródło
FYI - wsparcie (przynajmniej częściowo) zostało przedłużone poza pierwotny termin 2014: bbc.co.uk/news/technology-25758308
Robbie Dee
Cześć, dzięki za odpowiedź. To po prostu nie dzieje się niestety, firma (bank) niedawno (w drugiej połowie 2013 r.) Przeszła proces odświeżania komputera, w którym wydali dużo pieniędzy, zastępując każdy komputer w łańcuchu nowym zestawem firmy Dell. Następnie zapłacili ludziom z IBM za wyczyszczenie wszystkich tych maszyn i zainstalowanie XP! Myślę, że jeśli chcieliby uaktualnić system do bardziej nowoczesnego systemu operacyjnego, to była złota okazja. Zazwyczaj odpowiedź byłaby stałe rada choć tak +1
prisoner24601
@RobbieDee -to daje użytkownikowi114764 wystarczająco dużo czasu.
kmote