Po co uczyć się Perla, Pythona, Ruby, skoro firma używa C ++, C # lub Java jako języka aplikacji?


Zastanawiam się, dlaczego programista C ++, C #, Java chce nauczyć się dynamicznego języka?
Zakładając, że firma nie zmieni swojego głównego języka programowania z C ++/C #/Java na język dynamiczny, jaki jest pożytek z języka dynamicznego?
Jakie zadania pomocnicze mogą być wykonane przez języki dynamiczne szybciej lub najlepiej po kilku dniach studiów niż z językiem statycznym, którego używasz przez kilka lat?

Aktualizacja
>
Po zapoznaniu się z kilkoma pierwszymi odpowiedziami staje się jasne, że są dwa problemy.
Moim głównym zainteresowaniem jest to, co pracodawca uzasadnia jako koszt.
To znaczy, szukam dla pracodawcy pretekstu do finansowania nauki dynamicznego języka. Poza oczywistym, że pracownik będzie miał szersze spojrzenie,
pracodawcy zwykle szukają „prawdziwych” korzyści.
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Bardzo często jest to szybkie zadanie, które nie jest częścią podstawowego oprogramowania, które tworzysz. Czasami zadanie jest jedno - porównać ten plik z bazą danych i opowiedzieć o różnicach. Parsowanie tekstu w Perlu/Ruby/Pythonie jest dużo łatwiejsze niż w Javie czy C # (po części dlatego, że dużo łatwiej jest używać wyrażeń regularnych). Prawdopodobnie zajmie to znacznie mniej czasu, aby przeanalizować plik tekstowy za pomocą Perl/Ruby/Python (a może nawet

vbscript
), a następnie załaduj go do bazy danych, a następnie utwórz program Java/C #, aby to zrobić, lub zrób to ręcznie.
Ponadto, ze względu na łatwość, z jaką większość języków dynamicznych analizuje tekst, doskonale nadają się do generowania kodu. Oczywiście twój ostateczny projekt powinien być w C #/Java/Transact SQL, ale zamiast wycinania i wklejania 100 razy, znajdowania błędów oraz wycinania i wklejania 100 razy, często (ale nie zawsze) łatwiej jest po prostu użyć kodu generator.
Niedawnym przykładem pracy jest sytuacja, w której musieliśmy pobrać dane z jednego systemu księgowego do naszego systemu księgowego. System ma format importu, ale stary system miał zupełnie inny format (stała szerokość, chociaż niektóre rzeczy trzeba było uzgodnić). Wyzwaniem nie jest stworzenie programu do ciągłego przesyłania danych. Chodzi o umieszczanie danych w naszym systemie, a następnie utrzymywanie ich tam w przyszłości. Dlatego, mimo że jesteśmy sklepem C # i SQL Server, użyłem Pythona do konwersji danych do formatu, który nasza aplikacja może zaimportować. Ostatecznie nie ma znaczenia, że ​​użyłem Pythona, liczy się to, że dane są w systemie. Mój szef był pod wielkim wrażeniem.
Tam, gdzie często widzę języki dynamiczne używane do testów. O wiele łatwiej jest stworzyć program w Pythonie/Perlu/Ruby, aby powiązać się z usługą internetową i wrzucić do niej jakieś dane, niż stworzyć równoważny program Java. Możesz także użyć Pythona, aby trafić w programy wiersza poleceń, wygenerować mnóstwo niepotrzebnych (ale nadal ważnych) danych testowych itp.
Inną rzeczą, w której języki dynamiczne są bardzo silne, to generacja kodu. Tworzenie kodu C #/C ++/Java. Poniżej znajdują się przykłady:
Pierwszy kodeks generowania kodu, które często widzę, są ludzie używającymi języków dynamicznych, aby utrzymać stałe w systemie. Zamiast ręcznego kodowania ENAMS, możesz użyć języka dynamicznego, aby dość łatwo zdemontować plik tekstowy i utwórz kod Java/C # za pomocą ENAMS.
SQL to zupełnie inna gra w piłkę, ale często uzyskuje się lepszą wydajność, wycinając i wklejając 100 razy zamiast próbować wykonać funkcję (z powodu buforowania planu wykonania lub złożonej konstrukcji funkcji logicznej, która zmusza cię do przejścia wiersz po wierszu, a nie w zestawie ). W rzeczywistości bardzo przydatne jest użycie definicji tabeli do automatycznego tworzenia określonych procedur składowanych.
Zawsze najlepiej jest uzyskać wpisowe na generator kodu. Ale nawet jeśli tego nie zrobisz, czy fajniej byłoby spędzać czas na wycinaniu/wklejaniu, czy może fajniej byłoby utworzyć skrypt Perl/Python/Ruby raz, a następnie wygenerować kod? Jeśli przesłanie kodu zajmie Ci kilka godzin, ale mniej czasu na stworzenie generatora kodu, to nawet jeśli użyjesz go raz, zaoszczędzisz czas, a tym samym pieniądze. Jeśli utworzenie generatora kodu trwa dłużej niż jednorazowe przesłanie kodu, ale wiesz, że będziesz musiał wielokrotnie aktualizować kod, nadal może to mieć sens. Jeśli przekazanie kodu zajmie ci 2 godziny, 4 godziny na stworzenie generatora, ale wiesz, że będziesz musiał przekazać równoważny kod 5 lub 6 razy więcej, niż oczywiście lepiej jest utworzyć generator.
Ponadto niektóre rzeczy są łatwiejsze w przypadku języków dynamicznych niż Java/C #/C/C ++, w szczególności przychodzą na myśl wyrażenia regularne. Jeśli zaczniesz używać wyrażeń regularnych w Perlu i zdasz sobie sprawę z ich wartości, możesz nagle zacząć używać biblioteki wyrażeń regularnych Java, jeśli nie robiłeś tego wcześniej. Jeśli tak, to może być coś innego.
Zostawię wam ostatni przykład problemu, który byłby świetny dla dynamicznego języka. Mój partner roboczy musiał wziąć katalog pełen plików i nagrać je na różnych płytach CD dla różnych klientów. Było kilku klientów, ale dużo plików i trzeba było do nich zajrzeć, żeby zobaczyć, czym są. Wykonał to zadanie ręcznie… Java/C # i zaoszczędziłby czas, ale za jednym razem i przy całym narzucie programistycznym nie jest tego warte. Jednak spoliczkowanie czegoś w Perl/Python/Ruby prawdopodobnie byłoby tego warte. Spędził nad tym kilka godzin. Utworzenie skryptu Pythona w celu sprawdzenia każdego pliku, dopasowania do klienta, do którego ma trafić, a następnie przeniesienia pliku w odpowiednie miejsce, zajęłoby mniej niż jeden. Ponownie, nie jest to część standardowego przypisania. Ale zadanie zostało ustawione jako jednorazowe. Lepiej zrobić to samemu, poświęcić więcej czasu na uzyskanie języka Java/C # w celu wykonania zadania lub spędzić znacznie mniej czasu na robieniu tego w Pythonie/Perlu/Ruby. Jeśli używasz C lub C ++, jest to jeszcze bardziej dramatyczne ze względu na dodatkowe problemy programistyczne w C lub C ++ (wskaźniki, sprawdzanie granic tablicy itp.).
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Pozwólcie, że odwrócę wasze pytanie do góry nogami, pytając, jaki jest sens, aby Amerykanin mówiący po angielsku uczył się innego języka?
Języki, którymi się posługujemy (i które programujemy) decydują o tym, jak myślimy. Może się to zdarzyć na podstawowym poziomie, takim jak c ++, javascript lub lisp, lub na poziomie implementacji, gdzie konstrukcja ruby ​​zapewnia moment eureki na rozwiązanie w „prawdziwej pracy”.
Mówiąc o twojej rzeczywistej pracy, jeśli rynek się załamie i twój pracodawca zdecyduje się cię zatrudnić, jak myślisz, jak przeciwstawisz się facetowi, który jest elastyczny, ponieważ napisał oprogramowanie w dziesiątkach języków, a nie twoją ograniczoną ekspozycję? Biorąc pod uwagę wszystkie inne rzeczy, myślę, że odpowiedź jest jasna.
Wreszcie, programujesz na całe życie, ponieważ kochasz programowanie ... prawda?
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Myślę, że nikt inny o tym nie wspomniał. Nauka nowego języka może być bardzo zabawna! Oczywiście jest to wystarczający powód, aby spróbować czegoś nowego.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Głównie programuję w Javie i C #, ale używam dynamicznych języków (ruby/perl), aby wspierać płynniejsze wdrażanie, uruchamianie zadań systemu operacyjnego, automatyczne raportowanie, analizę dzienników itp.
Po odrobinie nauki i eksperymentowaniu z ruby ​​lub perl, powinieneś być w stanie napisać kilka skryptów do manipulacji wyrażeniami regularnymi, które mogą zmieniać formaty danych lub pobierać informacje z dzienników. Przykładem małego skryptu ruby ​​/ perl, który można szybko napisać, byłby skrypt analizujący bardzo duży plik dziennika i zgłaszający tylko kilka interesujących zdarzeń, w formacie czytelnym dla człowieka lub w formacie csv.
Ponadto doświadczenie z różnymi językami programowania powinno pomóc w znalezieniu nowych sposobów rozwiązywania problemów w językach bardziej ustrukturyzowanych, takich jak Java, C ++ i C #.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jednym z głównych powodów, dla których warto nauczyć się Perla lub Rubiego, jest pomoc w zautomatyzowaniu wszelkich złożonych zadań, które musisz wykonywać w kółko.
Lub jeśli chcesz przeanalizować zawartość plików dziennika i potrzebujesz więcej plików niż jest to dostępne w przypadku grep, sed itp.
Ponadto używanie innych języków, takich jak Ruby, które nie wymagają dużych kosztów konfiguracji, pozwoli Ci szybko prototypować pomysły przed wdrożeniem ich w C ++, Javie itp.
HTH
owacja,
Obrabować
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Kilka lat temu Paul Graham opublikował artykuł o tym, dlaczego programiści Pythona stali się lepsi od programistów Javy. (

http://www.paulgraham.com/pypar.html
http://www.paulgraham.com/pypar.html
)
Zasadniczo, niezależnie od tego, czy nowy język jest zgodny z obecną metodologią firmy, nauka nowego języka oznacza naukę nowych pomysłów. Każdy, kto chce nauczyć się języka, który nie jest uważany za „klasę biznesową”, oznacza, że ​​interesuje go programowanie, a nie tylko zarabianie pieniędzy.
Cytując miejsce Paula:

A ludzie nie uczą się Pythona, ponieważ
da im pracę; uczą się tego
ponieważ naprawdę lubią programować
i nie są zadowoleni
języki, które już znają.
Co sprawia, że ​​są dokładnie tym, czym są
programistów, których firmy powinny chcieć
zatrudnić. Stąd fakt, że z braku lepszego
Imię i nazwę Python Paradox: Jeśli
firma postanawia napisać swój
stosunkowo ezoteryczne oprogramowanie
język, który może zatrudnić
najlepszych programistów, bo tak będzie
przyciągać tylko tych, którym zależało wystarczająco
przestudiuj to. I dla programistów
paradoks jest jeszcze bardziej oczywisty:
język do nauki, jeśli chcesz się go nauczyć
dobra praca to język, którym ludzie
uczyć się nie tylko po to, by znaleźć pracę.

Jeśli pracodawca byłby skłonny pokryć koszty nauki nowego języka, są szanse, że osoby, które zgłosiły się na ochotnika do nauki (zakładając, że nie jest to wymagana klasa), byłyby tymi samymi osobami, które są już na „szybkiej ścieżce”.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Dobry hokeista gra tam, gdzie jest krążek. Świetny hokeista gra tam, gdzie powinien być krążek.
- Wayne Gretsski.

Nasza branża nieustannie się zmienia. Żaden język nie może być wiecznie mainstreamowy. Dla mnie Java, C ++, .Net to teraz podkładka. A python, ruby, perl to miejsce, w którym będzie podkładka. Zdecyduj sam, czy chcesz być dobry, czy wspaniały!
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Czy spodziewasz się, że będziesz pracować dla tej firmy na zawsze? Jeśli kiedykolwiek wejdziesz na rynek pracy, niektórzy potencjalni pracodawcy będą o tym wiedzieć

paradoks
http://www.paulgraham.com/pypar.html
Python .
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Kiedy po raz pierwszy nauczyłem się Pythona, pracowałem w sklepie Java. Czasami musiałem wykonywać poważne zadania związane z przetwarzaniem tekstu, które były znacznie łatwiejsze do wykonania za pomocą szybkich skryptów w Pythonie niż za pomocą programów Java. Na przykład, jeśli potrzebowałem przeanalizować złożony plik CSV i dowiedzieć się, które z jego wierszy pasują do wierszy w naszej bazie danych Oracle, było to znacznie łatwiejsze w Pythonie niż w Javie.
Co więcej, odkryłem, że nauka Pythona uczyniła mnie znacznie lepszym programistą Java; ponieważ nauczyłem się wielu tych samych pojęć w innym języku, czuję, że rozumiem je znacznie lepiej. A jeśli chodzi o to, co sprawia, że ​​Python jest łatwiejszy niż Java, możesz sprawdzić to pytanie:

Java -> Python?
https://coderoad.ru/49824/
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:


Edit:

Napisałem to przed przeczytaniem aktualizacji oryginalnego pytania. Zobacz moją drugą odpowiedź, aby uzyskać lepszą odpowiedź na zaktualizowane pytanie. Zostawię to jako ostrzeżenie przed byciem najszybszą bronią na Zachodzie =)
Ponad dekadę temu, kiedy studiowałem sposób działania komputera, starzy mędrcy z brodami wyjaśnili, że C i C ++ to narzędzia przemysłu. Nikt nie używał Pascala, a tylko lekkomyślni ryzykowali swoje firmy asemblerowe.
I oczywiście,

nikt nawet nie wspomniałby o strasznej powolnej brzydkiej rzeczy zwanej Javą
... Nie będzie to poważne narzędzie biznesowe.
Więc zastąp języki w powyższej historii, a być może uda ci się przewidzieć przyszłość. Albo może nie. Chodzi o to, że Java nie będzie ostatnim językiem programowania i prawdopodobnie również zmienisz pracodawcę. Przyszłość dodaje energii 24 godziny na dobę. Bądź gotów.
Nauka nowych języków jest dla Ciebie dobra. Ponadto, w niektórych przypadkach, może dać ci prawo do przechwałek przez długi czas. Mój pierwszy kurs uniwersytecki miał pewien schemat. Więc kiedy ludzie rozmawiają ze mną o czymś nowym

language du jour

moja odpowiedź brzmi mniej więcej tak: „Funkcje pierwszej klasy? Tak było w zeszłym wieku”.
I oczywiście masz

więcej rzeczy zrobionych

używając języka wysokiego poziomu.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Nauka nowego języka to długi proces. Nauczysz się podstaw za kilka dni, tak. Ale! Jak zapewne wiesz, rzeczywista użyteczność dowolnego języka jest związana z biblioteką standardową i innymi dostępnymi komponentami. Aby nauczyć się go efektywnie używać, potrzeba dużo praktycznego doświadczenia.
Być może jedyną natychmiastową korzyścią krótkoterminową jest to, że programiści uczą się rozróżniać gwoździe, które potrzebują młotka Python/Perl/Ruby. A jeśli są dobrzy, mogą się trochę więcej nauczyć (może online!) I stać się prawdziwymi ekspertami.
Łatwiej sobie wyobrazić długoterminowe korzyści:
  • Pracownik staje się najlepszym deweloperem. Najlepszy programista = & > najwyższej jakości. Obecnie żyjemy w gospodarce opartej na wiedzy. Bardziej sensowne jest inwestowanie w te mózgi, które już dla Ciebie pracują.
  • Łatwiej jest dostosować się, gdy pojawi się następny duży język. Bardzo prawdopodobne jest, że NBL będzie miał wiele funkcji obecnych w nowoczesnych językach skryptach: funkcje pierwszej klasy, zamknięcia, strumienie/generatory itp.
  • Nowe możliwości rynkowe i możliwość szybszego reagowania. Nawet jeśli nie piszesz w Pythonie, inni ludzie pisać. Twoi klienci Inny dostawca na projekcie Czy to możliwe, że krytyczny komponent został napisany w jakimś innym języku Będzie to kosztować czas i pieniądze, jeśli nie masz ludzi, którzy potrafią zrozumieć kod i wchodzić z nim w interakcję.
  • Rekrutacja. Jeśli Twoja firma ma reputację uczącego ludzi nowych i ekscytujących rzeczy, łatwiej będzie Ci zatrudnić najlepszych ludzi. to niezbyt skuteczny sposób na wyróżnienie się na rynku pracy.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Odpowiadając na zaktualizowane pytanie, jest to problem z kura/jajko. Najlepszym sposobem uzasadnienia kosztów jest pokazanie, w jaki sposób obniża to koszty w innym miejscu, więc być może będziesz musiał poświęcić trochę dodatkowego/osobistego czasu, aby najpierw się czegoś nauczyć, aby zbudować funkcjonalny prototyp.
Pokaż swojemu szefowi demo typu „Hej, zrobiłem to i oszczędza mi to dużo czasu [lub jeszcze lepiej, tak dużo pieniędzy], wyobraź sobie, że gdyby każdy mógł z tego skorzystać, ile pieniędzy byśmy zaoszczędzili”
A potem, po tym, jak się zgadzają, wyjaśnij, jak to jest inna technologia i warto wydawać pieniądze, aby uzyskać więcej uczenia się i szkolenia dla innych, jak to zrobić lepiej.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Odkryłem, że im więcej gram w Rubim, tym lepiej rozumiem C #.
1) Kiedy przełączasz się między tymi językami, każdy z nich ma własne konstrukcje i filozofie stojące za problemami, które próbują rozwiązać. To pomoże ci znaleźć

odpowiednie narzędzie do pracy

lub

obszary problemowe

.
2)

rola kompilatora

(lub tłumacz w przypadku niektórych języków) staje się bardziej widoczny. Dlaczego system typów Rubiego różni się od systemu .Net/C #? Jakie problemy rozwiązuje każdy z nich? Przekonasz się, że masz niższy poziom zrozumienia konstrukcji kompilatora i ich wpływu na język
3) przełączanie się między Rubim i C # naprawdę pomogło mi lepiej zrozumieć

wzorce projektowe
... Sugeruję implementację typowych wzorców projektowych w języku takim jak C #, a następnie w języku takim jak Ruby. To często pomogło mi dostrzec filozofię określonego wzorca podczas niektórych ceremonii kompilacji.
4) inne

społeczność
... C #, Java, Ruby, Python itp. Wszystkie mają różne społeczności, które mogą pomóc Ci wykorzystać swoje umiejętności. To świetny sposób, aby przenieść swoje rzemiosło na wyższy poziom.
5) wreszcie, bo nowe języki są fajne :)
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Nauka czegoś z elastycznym systemem OOP, takim jak Lisp lub Perl (zobacz Moose), pozwoli Ci lepiej rozwinąć i zrozumieć swoje przemyślenia na temat inżynierii oprogramowania. Idealnie, każdy język ma jakiś unikalny aspekt (czy to CLOS, czy jakaś inna technika), który poprawia, poszerza i rozwija umiejętności programowania.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jeśli masz tylko młotek, każdy problem zaczyna wyglądać jak gwóźdź.
Są chwile, kiedy obecność śrubokręta lub szczypiec sprawia, że ​​trudny problem staje się banalny.
Nikt nie pyta wykonawców, Płotnikowa itp .: "Po co uczyć się posługiwać śrubokrętem, skoro już mam młotek?" Naprawdę dobrzy wykonawcy/stolarze mają mnóstwo narzędzi i wiedzą, jak dobrze z nich korzystać. Wszyscy programiści muszą zrobić to samo, nauczyć się korzystać z nowych narzędzi i dobrze z nich korzystać.

Ale zanim użyjemy jakichkolwiek elektronarzędzi, zacznijmy
poświęć chwilę, aby porozmawiać o bezpieczeństwie sklepu. wymagany
przeczytaj, zrozum i przestrzegaj wszystkich
instrukcje bezpieczeństwa dostarczone z
elektronarzędzia. To znacznie zmniejszy
Ryzyko zranienia. I pamiętaj : koniec ważnej zasady
w co się ubrać: okulary ochronne
- Norm
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Myślę, że główne zalety języków dynamicznych można podsumować w następujący sposób
  • Szybki rozwój
  • Klej

Krótkie czasy cykli projekt-kod-test sprawiają, że języki dynamiczne są idealne do tworzenia prototypów, narzędzi i szybkich & amp; brudne skrypty jednorazowe. IMHO, ostatnie dwa mogą mieć ogromny wpływ na produktywność programistów. Zdumiewa mnie, jak wiele osób radzi sobie ręcznie, zamiast złożyć narzędzie, które zrobi to za nich. Myślę, że to dlatego, że nie mają czegoś takiego jak Perl w swoim zestawie narzędzi.
Możliwość interakcji z niemal wszystkim (innymi programami lub językami, bazami danych itp.) Ułatwia ponowne wykorzystanie istniejącej pracy i automatyzację zadań, które w innym przypadku musiałyby być wykonywane ręcznie.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Biorąc pod uwagę rosnący nacisk na uruchamianie języków dynamicznych (da-vinci vm itp.) Na JVM i rosnącą liczbę języków dynamicznych, które faktycznie na niej działają (JRuby, Grrovy, Jython), myślę, że przypadki użycia po prostu rosną . Oto niektóre ze skryptów, które okazały się naprawdę pomocne
  • Prototypowanie -Użyj RoR lub Grails do szybkiego prototypowania, korzystając z możliwości uruchomienia go na standardowym serwerze aplikacji i (ewentualnie) ponownego wykorzystania istniejących usług itp.
  • Testowanie -Poprawne testy jednostkowe są znacznie szybsze w językach dynamicznych
  • Performance/automation test scripting -niektóre z tych narzędzi zaczynają zezwalać na używanie standardowego dynamicznego języka z wyboru do pisania skryptów testowych zamiast zastrzeżonych języków skryptowych. Dodatkową korzyścią może być możliwość ponownego wykorzystania części już napisanego kodu testów jednostkowych.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Nie mów swojemu pracodawcy, że chcesz się nauczyć języka Ruby. Powiedz mu, czego chcesz się dowiedzieć o najnowocześniejszych technologiach frameworków internetowych. Tak się składa, że ​​najgorętsze to Django i Ruby on Rails.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Często stwierdzałem, że nauka innego języka, zwłaszcza dynamicznie wpisywanego na maszynie, może nauczyć Cię kilku rzeczy o innych językach i ogólnie uczynić z Ciebie lepszego programistę. Na przykład nauka języka Ruby uczy programowania obiektowego w języku Java i odwrotnie. Ogólnie myślę, że lepiej być wszechstronnym programistą niż utknąć w jednym języku. Dzięki temu jesteś bardziej wartościowy dla firm/klientów, dla których pracujesz.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

sprawdź odpowiedzi na to pytanie:
https://stackoverflow.com/ques ... 84112
https://coderoad.ru/76364/
Uczenie się nowych języków polega na utrzymywaniu otwartego umysłu i uczeniu się nowych sposobów działania.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Nie jestem pewien, czy tego właśnie szukasz, ale naszą główną aplikację piszemy z języka Java w małej firmie, w której pracuję, ale używaliśmy Pythona do szybkiego pisania małych skryptów. Oprogramowanie do tworzenia kopii zapasowych, tymczasowe skrypty do manipulowania danymi i przesyłania wyników. Czasami wydaje się, że łatwiej jest usiąść z Pythonem i napisać szybki skrypt niż bawić się klasami i innymi rzeczami w Javie.
Tymczasowe skrypty, które nie pozostaną na miejscu, nie zajmują dużo czasu.
Jestem leniwy, ale oczywiście dobrze jest po prostu nauczyć się jak najwięcej i zobaczyć, jakie funkcje istnieją w innych językach. Wiedza więcej nigdy nie zaszkodzi przy przyszłych zmianach zawodowych :)
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Chodzi o poszerzenie horyzontów jako programisty. Jeśli ograniczysz się tylko do języków silnie wpisanych, możesz nie być najlepszym programistą, jakim możesz być.
Jeśli chodzi o zadania, Python/Lua/Ruby/Perl świetnie nadają się do małych prostych zadań, takich jak znajdowanie niektórych plików i zmiana ich nazw. Świetnie sprawdzają się również w połączeniu z frameworkami (np.Rails, Django, Lua dla Windows), aby szybko tworzyć proste aplikacje. Heck, 37Signals polega na budowaniu prostych, ale bardzo przydatnych aplikacji Ruby na Railsach.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Są przydatne dla "szybkiego hakowania", czyli, aby wypełnić przestrzeń w swoim języku głównym, szybciej (i potencjalnie brudna) korekta szybciej niż byłaby to konieczne rozwinięcie tego samego w języku podstawowym. Przykład: Prosty skrypt w Perlu, aby przejść przez duży plik tekstowy i zastąp wszystkie instancje adresów e-mail do innych, trywialne z ilością czasu spędzonego w zakresie 10 minut. Hakowanie aplikacji konsoli razem, aby zrobić to samo w swoim głównym języku, wymagałoby wielu wysiłków.
Masz również tę zaletę, że znajomość dodatkowych języków rozszerza twoje umiejętności, a nauka rozwiązywania problemów w innych językach może być równie cenna jak sam język.
Wreszcie, języki skryptowe są bardzo przydatne w dziedzinie rozszerzeń. Weźmy jako przykład LUA. Możesz dołączyć interpreter Lua do swojej aplikacji z bardzo niewielkim narzutem, a teraz masz sposób na tworzenie bogatych funkcji skryptowych, które można ujawnić użytkownikom końcowym lub zmodyfikować i szybko rozprowadzić bez konieczności przebudowywania całej aplikacji. Jest to wykorzystywane z doskonałym efektem w wielu grach, zwłaszcza w World of Warcraft.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Osobiście pracuję nad aplikacją Java, ale nie mogę obejść się bez Perla dla niektórych skryptów pomocniczych.
Mam skrypty do szybkiego odwracania tego, na co wskażę, skrypty do uruchamiania skryptów kompilacji, skrypty do czyszczenia danych i porównywania danych.
Oczywiście, że to ja

mógłby

zrobiłby to wszystko za pomocą skryptów java lub może powłoki (mam ich też kilka), ale kto chce skompilować klasę (upewniając się, że ścieżka klas jest ustawiona poprawnie itp.), Kiedy potrzebujesz czegoś szybkiego i brudnego. Znajomość języka skryptowego może usunąć 90% tych nudnych/powtarzalnych zadań ręcznych.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Języki dynamiczne świetnie nadają się do tworzenia prototypów pomysłów. Często ze względu na wydajność nie sprawdzają się w przypadku trwałych rozwiązań lub produktów.

Ale

z językami takimi jak Python, które pozwalają osadzić standardowe C/C ++/Java lub odwrotnie, możesz przyspieszyć naprawdę krytyczne bity, ale pozostawić je sklejone elastycznością dynamicznego języka.
.. iw ten sposób uzyskasz to, co najlepsze z obu światów. Jeśli chcesz to uzasadnić, dlaczego więcej osób powinno się uczyć tych języków, po prostu wskaż, o ile szybciej możesz opracować to samo oprogramowanie i o ile bardziej niezawodne rozwiązanie (ponieważ debugowanie/naprawianie problemów w językach dynamicznych, z mojego doświadczenia, dużo łatwiej!).

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się