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

Najgorszy język, w jakim kiedykolwiek pisaliście

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1