[#18]
Re: Prace nad API2 - nowy język programowania
Pozwolę sobie odpowiedzieć zbiorczo na Wasze posty.
Tak, wskaźniki są proste, żeby je wytłumaczyć wystarczy kartka papieru, długopis i 0.5h, ale problem ze wskaźnikami na Amidze jest taki, że jak się coś namiesza to komputer się resetuje i w wypadku większego programu nawet nie wiadomo gdzie zacząć szukać. Bo nie w samych wskaźnikach tkwi kwestia ale w ich arytmetyce. Łatwo wyjechać poza pamięć danej struktury/tablicy i nadpisać inną, a błąd się ujawni w innym miejscu i chwilę później.
Teraz co do samego języka. Jeżeli ktoś okazjonalnie potrzebuje sobie coś napisać bo np. musi przerobić jakieś pliki z danymi czy coś tego typu, to język w który może to w łatwy sposób zrobić bez potrzeby użycia tych że wskaźników i ręcznego alokowania pamięci, będzie dla niego dużo wygodniejszy niż wspomniane C. Jeżeli ktoś umie programować i chce napisać coś większego, to choćby nie wiem jak był biegły, nadal popełni błędy, które będą skutkować wyżej opisaną sytuacją. Ale nie tylko o to chodzi. C jest bardzo proste ale i zarazem bardzo prymitywne. Owszem można w nim wszystko zrobić, ale czasem trzeba dużo kodu napisać, a dużo kodu, to dużo testowania, debugowania i utrzymywania. Dlatego w nowych języka dodano wiele konstrukcji i komponentów z nich korzystających i dzięki temu programuje się wygodniej i szybciej. Ja na przykład jestem fanem lambd i LINQ, brakuje mi tego w C i dlatego te elementy znajdą się w nowym języku i komponentach API2.
Co do popularności składni C, jeżeli spojrzymy na przykłady to mój język nie jest od niej aż tak daleki. Ktoś kto programuje w Swiftcie, C#, Kotlinie, Javascriptcie, Typesciptcie czy nawet w C się bez problemu w nim odnajdzie i myślę że sam język obecnie nie jest problemem do nauczenia bo to zawsze jest mała rzecz, trudniej jest opanować jego komponenty bo one są duże, a głównym celem API2 są właśnie nowe komponenty i tutaj czy się ich użyje w C czy w innym języku trzeba je i tak opanować.
Dlaczego nowy język? Jak widać jest taka potrzeba. Microsoft unowocześnia C#, Apple ma Swifta, dla JVM pojawił się Kotlin. Jest jakiś powód ku temu. Poprzednie rozwiązania nie do końca się sprawdzały. Przenoszenie Kotlina nie ma sensu bo jest on ograniczony JVM. Swift ma wiele fajnych rzeczy ale i trochę braków. Stąd taka decyzja.
Na koniec może jeszcze napiszę, że nie kompiluję do asemblera tylko do C, więc pracy nad takim kompilatorem jest o wiele mniej i jest możliwość ukończenia go w krótkim czasie.