Opowiem trochę ze swojej perspektywy i branży w której przerobiłem dobre 5 lat.
Zajmowałem się projektowaniem instalacji przemysłowych i w przemyśle żaden program nie jest tak dobrze znany jak AutoCAD. Onegdaj wszystkie CADy to były na systemie Unix, napisane w Lispie, czyli drugim historycznie "prawdziwym" języku programowania po Fortranie.
Czekaj, co?! Żaden z CADów nie był napisany w LISP, w LISP co najwyżej można było pisać skrypty i makra w AutoCAD. Pełni taka samą rolę jak VBA dla MS Office. W tamtych czasach kiedy powstawały CADy, LISP był tylko ciekawostką akademicką i był (nadal zresztą jest) zbyt mało wydajny do pisania oprogramowania inżynierskiego. Oprogramowanie takie powstawało niemal wyłącznie w C i Fortranie.
W latach 90 kiedy nastąpił boom Windowsa, twórcy CADów zdali sobie sprawę, że jest to najlepsze wyjście i dostosowali swój software do nowej platformy. Oczywiście Lisp został trochę okrojony, trochę pozmieniany i obecnie figuruje pod nazwą CommonLisp. I dalej ten układ działa, ma się dobrze, a jedyne co się zmienia to kolejne wersje plików CAD (swoją drogą, sami programiści z Autodesku, nie wiedzą do końca jak ten format działa).
Co ma format plików do systemu operacyjnego?
Ze względu na to, że CAD daje tylko "płaskie" rysunki, inżynierowie potrzebowali kolejnych narzędzi, żeby ułatwić sobie życie i pracę,
Nie CAD, tylko AutoCAD. Konkurencyjne programy CAD miały zintegrowane 3D jeszcze w latach 90-tych, jak programiści autodeska o tym nawet nie marzyli. Np. Bentley Microstation. AutoCAD to była wtedy druga liga, zwykła deska kreślarska. W Polsce spopularyzował się tylko ze względu na niską cenę i powszechną dostępność piratów.
I tu jest też sedno sprawy: żaden Linux, czy MacOs nie może zaoferować tego co zaoferował Windows. Androida pomijam, bo jest to nadal niedorozwój w porównaniu z innymi systemami.
To ciekawe. Co ma Windows, czego nie umie Linux?
Szczególnie, że większość CADów ma wersję na MacOs, w tym AutoCAD. Nie było problemu zrobić wersji na MacOs to nie byłoby i z Linuksem.
Jak są odważni, żeby przepisać CommonLispa na inne platformy, to proponuję zacząć teraz i do zobaczenia za 20 lat. :)
Pudło. CommonLisp akurat jest dostępny na wszystkie platformy, łacznie z Linuksami. Ale nie ma to i tak znaczenia, bo CADy się pisze w C i C++, które też można skompilować praktycznie na wszystko. Przeniesienie tych programów na inne platformy to kwestia przeportowania głównie warstwy GUI i przekompilowania całej reszty. Nie jest to projekt na tydzień, ale nie zajęłoby też 20 lat. Jak Windows stawał się popularny, to nie było żadnego problemu aby przeportowac te programy z DOSa, a wcześniej z różnych Uniksów.