Najgorszy język, w jakim kiedykolwiek pisaliście

Wątek przeniesiony 2022-08-02 15:22 z Off-Topic przez cerrato.

2

Tak jak w temacie - w jakich językach musieliście pisać i wspominacie to z największą niechęcią? Oczywiście pytanie subiektywne, można umieszczać język, który mnóstwo ludzi lubi i używa, ale z jakiegoś powodu wam nie podszedł.

Zacznę:

  1. Wszystkie języki bazodanowe, typu PL/SQL, t-SQL. Po prostu nienawidzę ich, a swego czasu musiałem sporo procedur wyklepać.
  2. Autorski język wewnętrzny pewnej firmy, kompilowany do JSa. Każdy, kto kiedykolwiek pracował na wewnątrzfirmowych językach będzie wiedział, jak bardzo to boli. Posiadał wady JSa bez jego zalet.
  3. Autorski język wewnętrzny pewnej firmy, tym razem składnią przypominał BASICa. I tak, było GOTO.
  4. Python 2.7 . Nie wiem czemu, bo parę lat później musiałem klepać Sparka w Pythonie 3.6 i już było spoko, nawet przy pisaniu trochę dłuższych kawałków.

A wy jakie macie doświadczenia?

1

C++

4
  • Bash.
    Fajnie się pisze komendy i ogólnie ma swój urok (np. fajnie jest, że można napisać komendę i zrobić pipe do drugiej komendy), więc nie to, że jest całkiem zły. Ma swoje momenty. Jednak wszelkie instrukcje sterujące typu ify, pętle, zmienne, to jakaś dzikość. Kto wymyślił taką składnię i jak to zapamiętać? Bash jest wygodny do pisania komend, jednolinijkowców, ale nie do pisania całych skryptów.

  • PHP - kiedyś lubiłem, fajnie się tego uczyło i pisało, jednak kaman. To fraktal złego wzornictwa. Stóg, igła, igła stóg? Każda funkcja z innej parafii. I chyba nigdy do końca nie wprowadzili obiektówki (tj. oczekiwałbym, że jak już jest OOP, to przepiszą bibliotekę standardową na obiektówkę, a nie...)

  • Objective-C - koncepcyjnie spoko, Smalltalkiem inspirowany zdaje się, jednak składnia, sposób wywołania funkcji, podawania argumentów, to jakaś dzikość (chociaż Smalltalk też, co widziałem, to koncepcyjnie spoko, ale składnia dzika).

  • QBasic - akurat fajnie się pisało, ale to był mój pierwszy język i później przeszedłem do bardziej cywilizowanego Pascala. Natomiast w basicu cóż, używało się goto xD a to jest "uważane jako raniące" ;)

0

Perl, Power Script, JS (ale bardzo mało pisałem), Centura (to było uwno pierwszego sortu).

0

Mogą być własne?

Własny port języka Apache Velocity VTL do C++
Choć akurat wersja C++ nigdy nie przerosła swojej roli, być może do dziś generuje proste bloki tekstu, wiec to tylko wsadziłem świadomie jako paradoks.

Ale własnymi paluchami przyczyniłem się do przerośnięcia roli tego języka w Javie na jednym z wdrożeń. Jest to niestety język tuiringowo pełny (ma ustawienia zmiennych itd), i skusiło robić w nim to, do czego nie jest przeznaczony, np podsumy raportów. Oczywiście zaczęło się niewinnie, ale potem "panowie doróbcie drugi poziom sumowania", "dołóżcie warunek" itd ...
Od tej pory do templetowania wydruków zawsze wybiorę język czysty, gdzie dostarczone obiekty są wyłącznie odczytywane, i w którym nie można dorabiać algorytmów, które naturalnie nie tkwią w modelu, np stringtemplate (zyskałem przynajmniej dwa środowiska: JVM i .NET)

Marnie wspominam TCL (tak, ten TCL) wbudowany jako język skryptowania polskiego "ERP" czasów znakowych. O dziwo, wybrali go w latach, gdy już były bardziej sensowne języki wbudowane (choć i tak było to wielokrotnie lepsze od ich poprzedniego silnika).

Romansowanie z PHP, z którym się nigdy nie złączyłem trwale

12
  1. BASIC na C64
    Tego się nawet nie da opisać jak ktoś nie pisał w tych basicach z lat 80tych na ośmiobitowce.
    Numerowanie linii, wszystkie zmienne globalne, a do tego tylko dwie pierwsze litery z nazwy zmiennej się liczą, więc DUDA = 5 to to samo co DU = 5 i DUP = 5. Można powiedzieć, że język naturalnie karał za długie nazwy zmiennych.

  2. PL/SQL - ludzie do dzisiaj w tym piszą, a IMO powinno to być zabronione konwencją genewską. Nie musiałem w tym wiele pisać, ale każde moje spotkanie kończyło się niedowierzaniem, że coś mosze być aż tak głupie i niespójne. Do dziś pamiętam herezje taki jak parametry OUT, absurdalny debug itp.

  3. COBOL - w zasadzie tylko czytałem czyjeś kody i pisałem drobne zmianny na potrzeby eksperymentów. Początkowo nie wierzyłem w statystyki mówiące, że jedna linia w javie odpowiada 60 liniom w COBOLu... ale teraz nie jestem pewny czy to nie było porównywane z javą 1.1 (która była dużo bardziej przegadana od współczesnych wersji)

Nie cierpie PHP i JS, ale trzeba przyznać, że daleko im pod względem upierdliwości do tych 3 wymienionych. Zupełnie inna liga.

6

CMake.

Dla przykładu, listy to po prostu napisy rozdzielane średnikami, zatem set(myVar "a b c") ustawia napis, a set(myVar "a;b;c") ustawia listę. Żeby potem pobrać jakiś element z listy to nie ma jakiejś ludzkiej składni pokroju klasycznych klamerek, tylko trzeba użyć polecenia list z opcją GET, która umieszcza wynik w nowej zmiennej

set(myList a b c) # Creates the list "a;b;c"
list(GET myList 2 1 letters)
message("letters = ${letters}") # letters = c;b

Matematyki też nie można robić bezpośrednio, tylko trzeba używać polecenia math i również podać zmienną wyjściową

set(x 3)
set(y 7)
math(EXPR z "(${x}+${y}) / 2")
message("result = ${z}") # result = 5

Pętle i tym podobne równie paskudne co w Bashu, jak nie gorsze

foreach(outerVar IN ITEMS a b c)
    unset(s)
    foreach(innerVar IN ITEMS 1 2 3)
        # Stop inner loop once string s gets long
        list(APPEND s "${outerVar}${innerVar}")
        string(LENGTH s length)
        if(length GREATER 5)
            break()
        endif()

        # Do no more processing if outer var is "b"
        if(outerVar STREQUAL "b")
            continue()
        endif()
        message("Processing ${outerVar}-${innerVar}")
    endforeach()
    message("Accumulated list: ${s}")
endforeach()

Porównania...? Łapcie tabelkę
test.png
Te oznaczone * są dostępne dopiero od wersji 3.7 i późniejszych.

A najgorsze jest to, że w świecie C++ to standard.

2

Perl. Wytrzymałem w projekcie dwa albo trzy miesiące i uznałem, że czas na nową pracę. Kosmiczna, niezrozumiała dla mnie składnia, nieczytelne jednolinijkowe hacki, miałem wrażenie, że do języka zostało wrzucone wszystko co ktoś uznał za fajne, ale nie przemyślał całości ... nie, zdecydowanie nie.

2

Nie liczac "zabawowych" jezykow typu brainfuck, maszyna Turinga itp.

XSLT 1.0 -> system gdzie logika biznesowa byla w tym czyms, chociaz twoworzenie xmli przetwarzaajcych inne xmle, brzmi jak wybryk szalonego geniusza.

Wewnetrzene systemy regulowe -> idea byla taka, zrobmy system dzieki ktoremu klient bedzie mogl sobie sam zmieniac rozne rzeczy. W efekci bylo cos trudnego w uzyciu, czego klient nie potrafil uzywac a developerow szlak trafial ze wzgledu na edytor, problemy z mergem i to ze np. w Javie daloby sie to samo napisac o wiele szybciej i latwiej.

Co do Perla to zalezy, pisalo mi sie w tym fajnie, ale czytanie kodu zaawansowanych Perlowcow bylo straszne.

Pierwsze Javy.

Basic z C64

0

KQL

0

C/AL, VB, PHP.
JS jest całkiem spoko, ale ekosystem to tragedia.

3

Ogólnie lubiłem bazy póki robiłem głównie selecty i może proste procedury, jednak znienawidziłem PL/SQL gdy poszedłem do firmy w której szef stwierdził że spaghetti javie7 za wolno działa i trzeba je przepisać na spaghetti PL/SQL xD W firmie każdy był chodzącą dokumentacją, ale nikt nie miał pojęcia o clean code czy wydajności, więc wyszło na to że nowe rzeczy pisało się wolniej, wszystko działało wolniej, ale za to nie dało się debugować błedów xD

0

Me Too.
w sensie ja też tknąłem kiedyś PL/SQL - nie z własnej woli i nigdy więcej nie mam zamiaru do tego wracać.
Ale za to TSQL jest miły, szybki i przyjemny. Niby podobne, a jednak nie :)

0

Microsoft Basic
Pascal
C++
Python

1

C++. Pisałem za dzieciaka sobie jakieś skrypty w Rubym. Potem usłyszałem o programowaniu, stwierdziłem że w sumie why not. Nie dość, że w tamtych czasach (2006?) materiały to był jakiś dramat, to sam język nadaje się do a) super zastosowań w przypadku zapaleńców b) znęcania się nad dziećmi. Mój przypadek to był ten drugi. Gdybym urodził się teraz i dostał jakiś inny język do nauki przy wykorzystaniu współczesnych materiałów - w wieku moich aktualnych prawie 30 lat miałbym majątek wiele razy większy, bo zwyczajnie zbierałbym exp od dziecka, bo by mnie ten C++ i materiały do nauki nie zraziły. A tak skończyło się na paru sesjach po kilka minut, kiedy miałem ochotę wymiotować

2

Javascript, a muszę to robić codziennie 😥

0

Python, JS. Za bardzo inne niż to co lubię/używam

1

C/C++/PHP, za to JSa bardzo lubię 8)

0

Nigdy nie musiałem pisać w języku, którego nie lubiłem. Zawsze wybierałem pracę tak, żeby nie było JS i PHP. Ale jakby mi ktoś kazał uprawiać nawiasozę pisać w Clojure to pewnie tego samego dnia bym napisał CV

0

Pascal, PHP, Python

PS. generalnie zaskoczony jestem jak wiele osób nie lubi tutaj Pythona

2

[Objective C[]] Składnia z ryja podobna do niczego i udawana obiektowość. Jak byłem w projekcie, gdzie się tego używało, to łapałem taski w C++ jak tylko się dało.
PL-SQL, chociaż to raczej skutek alergii na Oracle. Zmarnowałem na pisanie w tym najlepsze lata swojego życia.

1

C64 BASIC V2, chociaż nie wspominam go z niechęcią, raczej z obojętnością.

Koszmarnie wolny interpreter, kwadratowy garbage collector - na procesorze taktowanym częstotliwością 1 MHz, bardzo ubogi zestaw instrukcji.

W czasie projektowania komputera były już dostępne nowsze i lepsze wersje, ale producent przyjanuszował na pojemności ROMu i zastosował kość o pojemności 8 KiB, w której nowsze wersje by się nie zmieściły.

Zresztą wersja 2.0 też się nie zmieściła i część BASICa wylądowała w ROMie KERNAL xD

edit: ten BASIC był kupiony od Microsoftu, więc kod zbyt wysokich lotów to nie był, a kwadratówka w garbage collectorze to nie był jego jedyny problem...

0

zapomniałem! Przecież pisałem jeszcze w *tfu* CoffeeScripcie. Czyli coś, co zmienia składnię JavaScripta na taką Pythono-Rubiowo-YAMLową

I cóż, efektem była porąbana, nieintuicyjna i dwuznaczna składnia. Pisałem coś w AngularJS i miałem wrażenie, że wszystko mi idzie z kilka razy wolniej przez to, że szarpię się z językiem. Ten język to była pomyłka.

A miało być tak pięknie. Było to w czasach przed ES6, więc ten język na tamte czasy oferował "wygodniejszy" sposób pisania JSa (no i spopularyzował arrow functions, które potem weszły do JSa). Tylko, że w praktyce pisania okazało się to niewygodne, a CoffeeScript można nazwać ciekawym, ale nieudanym eksperymentem i ogólny trend w społeczności był taki, że nawet projekty, które były pisane w CoffeeScripcie, zaczęto z powrotem przepisywać na JS, ludzie, którzy promowali CoffeeScripta, też z powrotem przeszli na JS. A sam JS zaczął się wzbogacać o różne elementy, które pozwalają na wygodne pisanie(np. =>), więc CS przestał być atrakcyjny w porównaniu do ES6.

3

Python

1

Bash

0
jarekr000000 napisał(a):
  1. PL/SQL - ludzie do dzisiaj w tym piszą, a IMO powinno to być zabronione konwencją genewską. Nie musiałem w tym wiele pisać, ale każde moje spotkanie kończyło się niedowierzaniem, że coś mosze być aż tak głupie i niespójne. Do dziś pamiętam herezje taki jak parametry OUT, absurdalny debug itp.

A C# też nie ma przypadkiem parametrów OUT? Jak ma to PL/SQL i C# :D

1

XQuery

0

Ciekawe ile osób, które podało JS, miało przyjemność klepania kodu w TypeScript i ES6. :)

PL/SQL, C++ (<11), Ada, CSS wspierający stare IE (layout przed flexboxem), <= ES5, Perl, syntax Basha też jest mało intuicyjny

0

visual basic

46

Bash, C# :D Za Javą względnie tez nie przepadam. Finalnie z języków kompilowanych najlepiej pisało mi się w C++.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.