LINUX.ORG.RU

Помогите выбрать язык программирования.

 ,


1

3

Добрый вечер. Нужен какой-то язык программирования для анализа больших csv файлов, написанная программа на котором работала быстро. Все решения на python не подходят из-за медлительности, делать что-то с применением cython долго и не всегда приводит к резкому увеличению производительности.

Что мне надо:

  1. Наличие отладчика;
  2. Понятный и легкий синтаксис.
  3. Автоматическая уборка мусора. Руками освобождать память — усложнение кода.

Что я пробовал:

  1. Nim — проблемы с инфраструктурой (нормально не запускается отладка) + еще не стабилен. Но язык понравился.
  2. Rust — на мой взгляд переусложнили с unwrap(), например + зачем-то сделали 2 вида строк.
  3. С, С++ — не нравится «ручная» работа с памятью.

Сейчас присматриваюсь к Go, но отталкивает поддержка многопоточности, Scala — Хорошая интеграция с экосистемой java или .net. Еще не читал документацию.

★★

Последнее исправление: beastie (всего исправлений: 1)

Ответ на: комментарий от Iron_Bug

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

Нелепое утверждение, по крайней мере по двум причинам:

1. Не указано, для какого сценария использования нужен контейнер. Если контейнер используется для прямого доступа к элементам по индексу или для частых последовательных проходов вперед/назад, но без вставок/удалений (особенно в середину), то вряд ли связный список будет эффективнее простого вектора, даже с аллокацией в пулах.

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

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

меня не надо отсылать к измерениям. я их за 20 лет сделала предостаточно.

Похоже, замуж уже поздно...

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

Ты вообще почитал описание?
- Highly optimized for performance, with critical code paths written in Cython or C.
- Python with pandas is in use in a wide variety of academic and commercial domains, including Finance, Neuroscience, Economics, Statistics, Advertising, Web Analytics, and more.

Похоже на твой случай?

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

Да, читал.

1. Не подходит из-за того, что почти весь код придется переписать на Cython. Если писать на C критические участки, то вообще питон не нужен, так как большая часть программного кода будет С.

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

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

Не подходит из-за того, что почти весь код придется переписать на Cython

Хз с чего ты это взял, но тебе несомненно видней

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

Off-topic Третья, для default-настройки (50 комментариев на странице) :D А так, да, уездили тему :)

znenyegvkby
()
Ответ на: комментарий от cdshines

Ему же не только «парсанг цсв» нужен. Еще с сетью работать, алгоритмы машинного обучения, какая-то веб-морда.

jori
()
Ответ на: комментарий от cdshines

Мне не нужен просто парсинг цсв, мне надо обработать данные. Сам по себе парсинг и на питоне отлично работает.

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

Прочитал тред. Пиши на чем угодно из предложенного. го или пузон или скала.

cdshines ★★★★★
()

Голосую за C#. Под Linux-ом есть mono.

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

кажется, что ты просто грепать не умеешь

Ну что ж ты сразу с козырей то ходишь
Надо было подождать пока ТС начнёт рассказывать про Big Data, Hadoop, вот это всё

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

Я еще маленький для таких умных слов :-)

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

Уже дошел до ипанутого if err != nil {} на каждый чих?

jori
()

Да тут однозначно JVM с кучей библиотек для всяких CSV подойдёт на ура. К тому же есть всякие сфинксы, «люся» и обвязки для поиска полнотекстового по текстовым файлам. Кстати, на Сишке есть неплохие библиотеки для автоматического подсчёты ссылок, чтобы не трахаться с вашей ручной памятью, нормальные строки и массивы, ну и т.п. фенечки - не всё так плохо. Есть ещё Objective-C и открытый Swift. Лучше уж на них писать, компилируя с си или си++ библиотеками статическими, если уж охренеть как нужна скорость, что прям по 5 Гигов файлы каждый час нужно грепать.

А про питон - попробуй лучше запустить свой код на Jython / PyPy.

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

Ну тогда бери R (как уже советовали)

Братишка, а ты пробовал R для больших данных (миллионы строк)? Он отсасывает на таких задачах с такой силой, что приходится придумывать костыли с предварительной конверсией данных и последующим mmap'ом.

anonymous
()
Ответ на: комментарий от dicos

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

  • лучше бы на завод токарем пошел
  • с такими запросами тебе в R без вариантов
anonymous
()

Посмотри еще Ocaml/F# - по ним вроде были истории успеха как раз в области финансового анализа. Если решишь пойти хоть чуть-чуть дальше «предсказаний» цены по скользящей средней, есть например целая книжка F# for Quantitative Finance.

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

Преобразовать файл во вменяемое представление в памяти. Хотя-бы массив {price, id, date}, можно с последующим дампом в файл и загрузкой. либо [id]{price, date} или что там автору нужно.

Потом можно прикрутить поиск - если автор опишет что он из себя представляет.

anonymous
()

Пиши свой.

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