Jestem zainteresowany nauką programowania współbieżnego, koncentrując się na poziomie aplikacji / użytkownika (nie programowania systemowego). Szukam nowoczesnego języka programowania wysokiego poziomu, który zapewnia intuicyjne abstrakty do pisania współbieżnych aplikacji. Chcę skupić się na językach, które zwiększają wydajność i ukrywają złożoność programowania współbieżnego.
Aby podać kilka przykładów, nie uważam za dobrą opcję pisania kodu wielowątkowego w C, C ++ lub Javie, ponieważ IMHO moja wydajność jest zmniejszona, a ich model programowania nie jest intuicyjny. Z drugiej strony języki, które zwiększają produktywność i oferują bardziej intuicyjne abstrakcje, takie jak Python i moduł wieloprocesowy, Erlang, Clojure, Scala itp. Byłyby dobrym rozwiązaniem.
Co poleciłbyś na podstawie swoich doświadczeń i dlaczego?
EDYCJA: Dziękujemy wszystkim za interesujące odpowiedzi. Trudno jest wyciągać wnioski bez próby, ponieważ jest wielu dobrych kandydatów: Erlang, Clojure, Scala, Groovy i być może Haskell. Głosowałem za najbardziej przekonującymi argumentami, ale wypróbuję wszystkich dobrych kandydatów, zanim zdecyduję, który wybrać :)
begin transaction
end transaction
i wszystko w środku powinno być wolne od impasu i albo odnieść sukces, albo upaść jako całość.
To give an example, I don't consider a good option writing multithreaded code in C, C++, or Java
. Czemu?On the other hand, Python and the multiprocessing module, Erlang, Clojure, Scala, etc. are some of my options.
Znowu dlaczego? Rozwiń swoje pytanie, aby lepiej zdefiniować to, czego faktycznie szukasz.