LINUX.ORG.RU

Выбор ЯП.

 


0

2

Привет.

Да, я читал форум, такой тред уже был много один раз, но, во всех было сравнение только нескольких языков.

В данный момент, хочется изучить что-то новое.

Полистал форум, после прошелся по вики, почитал про языки, которые более «симпотизируют», если так можно выразиться, собственно список:

  • OCaml, честно говоря, не знаю, что сказать, мнение не однозначное, очень мало библиотек, многое надо будет самому.
  • Go, очень напомнил python, с беглого просмотра исходных кодов, готового проекта. На первый взгляд понравился. Вроде активно развивается.
  • Scheme, и так потихоньку изучаю, по мере чтения sicp, но что-то писать на нем, думаю, только если для себя.
  • Erlang, думаю, это пока совсем не для меня, но ваше мнение хотелось бы услышать.
  • CL, так же как и со схемой, не обычно, не могу точно сказать, подойдет ли мне он.
  • Haskell, читаю очень поверхностно, но пока обхожу стороной.

Да, языки описал, а задачу собственно нет.

Как таковой конкретной задачи нет, она появляется через некоторый промежуток времени. Например, надо будет реализовывать планировщик(думаю это правильное название), который будет принимать много «заданий», создавать для них очередь и постепенно ее выполнять. Да, все это можно написать на питоне, что сейчас успешно и делается, но хочется попробовать что-то новое.

Поэтому хочется услышать ваше мнение, что выбрать(да, я понимаю, что смотрю на языки совершенно разного уровня).

Извиняюсь, если все сумбурно и не внятно описал.

Заранее, огромное спасибо.

★★★

задачу собственно нет

обычно ЯП выбирается под задачу, а не наоборот

PS на замену «бедону» взял бы верблюда

shty ★★★★★ ()
Ответ на: комментарий от shty

Верблюд, имеется ввиду OCaml?

обычно ЯП выбирается под задачу, а не наоборот

Да, я это понимаю, но задачи почти всегда в одном направление, одну я сейчас описал, по критериям, подходят практически все перечисленные мной языки.

SAA ★★★ ()
Ответ на: комментарий от helios

Привет. Да, я совсем ушел в работу.

Знаю, конечно же perl, но нет, мне для скриптинга питона хватает за глаза :)

SAA ★★★ ()
Ответ на: комментарий от Boy_from_Jungle

тут любой язык подойдет)

Так вот в этом и проблема, что не знаю, за какой лучше взяться, во всех вижу плюсы и минусы, поэтому не могу определиться.

SAA ★★★ ()

У Go вроде компилятор еще сыроват.

Описание задачи слишком абстрактное, каковы требования к реализации?

korvin_ ★★★★★ ()
Ответ на: комментарий от SAA

Так вот в этом и проблема, что не знаю, за какой лучше взяться, во всех вижу плюсы и минусы, поэтому не могу определиться.

Подкинь монетку, по разу на каждый язык: орел - 1, решка - 0. Нулевые откидывай и так пока не останется один язык. Если после какого-то раунда останутся два языка, обозначь один орлом, второй решкой.

korvin_ ★★★★★ ()

Если нет сформулированной задачи, то выучите ЛЮБОЙ неизвестный язык. Тем самым выполните фичу «хочу изучить ЧТО УГОДНО новое».

Alve ★★★★★ ()
Ответ на: комментарий от korvin_

Описание задачи слишком абстрактное, каковы требования к реализации?

Да, через чур абстрактное.

Требования, одно из главных, это возможность обработки большого количества запросов в единицу времени(я понимаю, что этого можно добиться на каждом из перечисленных языков, но хочется меньшей кровью). Дальше, потребление памяти, желательно умеренное, это одна из причин для ухода от питона.(Возможно руки кривые, что много памяти сжирает.)

SAA ★★★ ()
Ответ на: комментарий от korvin_

Или составь для каждого список плюсов и минусов, проранжируй, подсчитай сумму. У какого языка будет больше баллов, тот и бери. Спорную ситуацию решишь монеткой.

korvin_ ★★★★★ ()
Ответ на: комментарий от Alve

Наверно, самый правильный вариант.

Но не хочется попасть так, что выучу язык, а библиотек, для него совсем не будет, и все надо будет делать самому, поэтому и хочется, услышать мнение опытных людей, на что стоит посмотреть, а что сразу откинуть.

SAA ★★★ ()

симпотизируют

Выбирайте русский, не ошибетесь.

А если серьезно — Scheme или CL. J вам, землянам, советовать не буду.

buddhist ★★★★★ ()
Ответ на: комментарий от SAA

Требования, одно из главных, это возможность обработки большого количества запросов в единицу времени(я понимаю, что этого можно добиться на каждом из перечисленных языков, но хочется меньшей кровью). Дальше, потребление памяти, желательно умеренное, это одна из причин для ухода от питона.(Возможно руки кривые, что много памяти сжирает.)

Я к тому что, например Erlang известен своими дешевыми легкими процессами, но если у тебя не так много ядер/процессоров, то толку от него не будет.

korvin_ ★★★★★ ()

OCaml considered deprecated, Scheme, CL — слишком ЛNСПы, насчёт хаскеля ты не уверен.
Остаются го и эрланг, но на го мало проектов, поэтому стоит писать на нём.
---
Если интересует экзотика, есть конкатенативные ЯП, например, factor.

quantum-troll ★★★★★ ()
Ответ на: комментарий от buddhist

симпотизируют
Выбирайте русский, не ошибетесь.

Да, извиняюсь, за свою неграмотность.

Спасибо за совет.

SAA ★★★ ()
Ответ на: комментарий от SAA

Но не хочется попасть так, что выучу язык, а библиотек, для него совсем не будет, и все надо будет делать самому, поэтому и хочется, услышать мнение опытных людей, на что стоит посмотреть, а что сразу откинуть.

Так ты определись, что для тебя важней: производительность и расход памяти или батарейки, т.к. в перечисленных тобой языках это видимо обратнопропорциональные вещи.

korvin_ ★★★★★ ()
Ответ на: комментарий от korvin_

Ядер и процов как раз достаточно, это все дело будет крутиться на серверах, где как минимум по два топовых ксеона или топовые амд.

SAA ★★★ ()
Ответ на: комментарий от korvin_

Жалко, что не получится найти среднее.

Конечно, лучше производительность и расход памяти.

Батарейки, дело времени.

SAA ★★★ ()
Ответ на: комментарий от SAA

ну для данной задачи он весьма хорош, особенно для задачи если тебя очередь, которая выполняется процессом (пулом процессов) без приоритетов. То основная модель пишется за 15 минут. Вот если уже нужны будут хитрости такие, как засыпание процессов или чекпоинты, то всё станет интереснее.

qnikst ★★★★★ ()
Ответ на: комментарий от SAA

Конечно, лучше производительность и расход памяти.

Батарейки, дело времени.

Ну, в таком случае, вероятно оптимальней будет Scheme или CL, если тебя не пугает, что они

слишком ЛNСПы

korvin_ ★★★★★ ()
Ответ на: комментарий от quantum-troll

Да, это тоже читал.

Если честно, выбираю больше между Go и Haskell(хотя и опасаюсь хаскеля). Лиспы, думаю дальше scheme и sicp не уйду.

SAA ★★★ ()
Ответ на: комментарий от SAA

Хм, я так понимаю для него нужны кластеры? Тогда да, его сразу в сторону.

Не знаю насчет кластеров, но указанного тобою оборудования может не хватить для получения пользы от эрланга.

korvin_ ★★★★★ ()

Раз в треде уже посоветовали OCaml, то чтобы был баланс, сделаю ему антирекламу: 1 2, 3.
Да и весь его блог на самом деле заслуживает внимания.

beka ()
Ответ на: комментарий от quantum-troll

Проблем с производительностью быть не должно, и кроме того, можно легко сделать привязку к сишным библиотекам.

У Go вроде были проблемы с потребляемой памятью, уже пофиксили? Если да, то я тоже голосую за Go, раз лиспы пугают ТС =)

korvin_ ★★★★★ ()
Ответ на: комментарий от korvin_

раз лиспы пугают ТС =)

Они не пугают :) Просто есть неопределенность, скажем так.

SAA ★★★ ()
Ответ на: комментарий от SAA

Ну на самом деле все написано на официальном сайте: Microthreads, Channels, Scheduling. Для обработки большого числа задач как раз хорошо подходит.

note173 ★★★★★ ()

Выбор языка

После такого

симпотизируют

рекомендую выбрать русский.

Erlang, CL, Haskell

А что ты с ними делать собрался? На полочку поставишь? У них области приложения сильно разные, и к твоим «симпотиям» иррелевантные.

malbolge ★★ ()
Ответ на: комментарий от quantum-troll

Да, верно, вместе использовать точно не потребуется.

SAA ★★★ ()
Ответ на: Выбор языка от malbolge

рекомендую выбрать русский.

Я уже выше, извинился за свою ошибку. За ваш совет, спасибо.

SAA ★★★ ()

Да, все это можно написать на питоне

Autosys - все было сделано до тебя и питона.

malbolge ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.