Посоветуйте язык программирования
Jan. 11th, 2015 02:41 pmЯ всю жизнь программировал только на бейсике, на разных его версиях. Так получилось. Когда писал кандидатскую, набралось очень много таблиц с данными (это были морфологические признаки морских ежей), и я задолбался обсчитывать их на калькуляторе. Поэтому быстренько освоил бейсик (тогда персональные компьютеры IBM только начали появляться, и к ним прилагался язык GW-Basic). Освоил - и сразу почувствовал себя человеком. С тех пор не переучивался, сейчас пишу все свои программки на VBA в MS Access. То есть в программировании я дилетант, но опытный. Программированием пользуюсь сейчас для имитационного моделирования эволюционных процессов в популяциях. Подумываю об одной новой модели, но понимаю, что на VBA она будет работать невыносимо медленно. Насколько я понимаю, программа, написанная почти на любом другом языке, компилируемом, будет работать в разы быстрее. Вопрос такой: какой из этих языков мне будет быстрее и проще всего освоить? Времени, сил и желания преодолевать трудности и вникать в программистские проблемы - не имеется. Мне бы этот язык просто скачать (можно купить, если не слишком дорого), освоить за пару-тройку дней - и вперед. Т.е. главное, чтобы он был максимально простым в освоении для того, кто знает бейсик, без всяких интеллектуальных "понтов", но работал хотя бы раз в 10 быстрее.
no subject
Date: 2015-01-11 10:01 pm (UTC)no subject
Date: 2015-01-11 10:01 pm (UTC)no subject
Date: 2015-01-11 10:03 pm (UTC)http://docs.continuum.io/numbapro/
no subject
Date: 2015-01-11 10:04 pm (UTC)no subject
Date: 2015-01-11 10:09 pm (UTC)Да, а что касается IDE - сейчас много всего хорошего и бесплатно, особенно под винду. PyCharm (https://www.jetbrains.com/pycharm/) (бесплатный в варианте Community Edition), а если человек привык к Visual Studio - PTVS (http://pytools.codeplex.com/) в связке с VS 2013 Community Edition.
(Про последний сразу честно скажу, что я - один из его разработчиков, так что это, в принципе, самореклама. Но мы умеем много гитик (http://pytools.codeplex.com/wikipage?title=Features%20Mixed-mode%20Debugging), которые в принципе не умеет больше никто, и которые могут в данной нише быть полезными.)
no subject
Date: 2015-01-11 10:11 pm (UTC)no subject
Date: 2015-01-11 10:23 pm (UTC)no subject
Date: 2015-01-11 10:24 pm (UTC)no subject
Date: 2015-01-11 10:31 pm (UTC)Менять его не собираюсь.
Думаю, что для научных задач билдер - лучшая среда для языка Си из-за удобных компонент, особенно TChart.
Однако хозяину блога вряд ли есть смысл тратить время на изучение языка Си и его многочисленных подвохов. А билдер имеет еще и свои собственные подвохи, которые тоже изучить пришлось бы.
no subject
Date: 2015-01-11 10:37 pm (UTC)no subject
Date: 2015-01-11 10:43 pm (UTC)no subject
Date: 2015-01-11 10:48 pm (UTC)Интересно, у фрезировщиков и токарей тоже свои стили да профессиональные верования? :) не смешите. Программирование - это не искусство, а ремесло предназначенное для создания продуктов.
Повторюсь, новичок в слесарном деле может сделать какую-нибудь отсебятину - типа, в мотор запихнуть глушитель? Так же должно быть и в ИТ. Хватит делать из программистов каких-то небожителей и творческих жителей питающихся хамоном.
И тут мы приходим к сопровождению старого кода разными программистами. Должно быть так чтобы программист не мог нагадить в код по незнанию. А такие проблемы происходят каждый день!
Да-да-да. Только вот мало кто помнит, что добрый компилятор вам на отсутствие конструкторов сам всё создаст и у вас просто физически не получится «использовать какую-то его часть, которую знаете». Надо знать всё и видеть подводные камни!
no subject
Date: 2015-01-11 10:59 pm (UTC)no subject
Date: 2015-01-11 10:59 pm (UTC)no subject
Date: 2015-01-11 11:00 pm (UTC)no subject
Date: 2015-01-11 11:04 pm (UTC)С конструкторами все в порядке - когда про оператор присваивания в учебникех пишут учат, там это все говорится.
no subject
Date: 2015-01-11 11:11 pm (UTC)мои примеры довольно хорошо отражают суть проблемы!
У вас код пишется раз, без ошибок и забывается? Вам больше новых чудных решений не надо реализовывать в зависимости от новых требований менеджеров да UX-специалистов? Как вам повезло то!
Вопрос один - как из детского сада IT в разработке продуктов сделать нормальную технологичную отрасль! Всё остальное - следствие. В СССР пытались решить эту задачу.
no subject
Date: 2015-01-11 11:18 pm (UTC)Что касается остального - при чем тут тема?
Или просто вы поняли, что я вас внематочно слушаю и, так сказать, решили выговориться о наболевшем? :)
no subject
Date: 2015-01-11 11:47 pm (UTC)я к тому, что я даже не знаю как назвать человека, который советует учёному учить С++ язык.
no subject
Date: 2015-01-11 11:49 pm (UTC)И я знаю, о чем говорю: у меня у самого в юности первым языком был бейсик, а вторым - угадайте, какой :)
no subject
Date: 2015-01-11 11:57 pm (UTC)И советовать этот язык биологам - это вредительство, как минимум.
no subject
Date: 2015-01-12 12:01 am (UTC)no subject
Date: 2015-01-12 12:07 am (UTC)Если сравнить C# с Java как для перехода с Basic, так и для использования в последующем непрофессионалом, то:
- на C# выше порог вхождения. Его реально освоить сложнее
- в C# проще накосячить, из Java убрали практически все возможности делать ошибки, которые не относятся к самому алгоритму. В C# остались те же unsigned парные типы, которые могут смешиваться в выражениях со знаковыми типами и приводить к "неожиданным" (неожиданным для написавшего код) результатам.
- "один файл с именем класса - один публичный класс на файл" как требование языка делает код Java более переносимым. Если мне потребовалось использовать какие-то классы из одного проекта в других проектах, я просто создаю maven проект для библиотеки, перетаскиваю файлы классов (и только их) без изменений в проект библиотеки, добавляю в нужные проекты в pom зависимости от новой библиотеки.
При этом мне не пришлось менять ни буквы ни в одном файле с исходным кодом, так как Java изначально мне ограничила возможность устроить из своего когда помойку, которую невозможно повторно использовать.
- Java является реально кроссплатформенной, особенно при использовании JavaFX. Да и уйти с той же Windows на тот же Mac разработчику (ну купил макбук тот же человек себе) - вообще не проблема. Уходить можно даже вместе с любимой IDE. И не париться о том, что забыли какие-то библиотеки в случае использования maven. Т.е. вообще об этом не думать. То же самое в C#?
- у Java больше комьюнити, больше библиотек (а использование maven делает их подключение к проекту вообще тривиальным - вставка нескольких строк в pom файл, даже не нужно беспокоиться о том, где взять библиотеку и куда ее на компе приткнуть)
>В джава будет не так?
В Java с этим намного лучше не только, чем в C (где выход за границу массива не контролируется), но и в C# за счет отсутствия прямоугольных массивов (в Java есть только массивы массивов, и когда вам нужно создать треугольную матрицу вы создадите треугольную матрицу, и выйдя за границы тут же получите exception со стектрейсом).
Вообще, хороший критерий оценки языка программирования - это скорость падения программы в случае наличия в ней ошибок. Идеальным вариантом является падение на этапе компиляции (и хорошая IDE в фоне это может обнаружить при написания кода в редакторе). Ошибки, которые просочились сквозь компилятор, должны приводить к падению в рантайме максимально близко к месту их реального возникновения.
В случае C это совсем далеко не так (несмотря на его компилируемость), C# в целом не плох, но Java лучше
no subject
Date: 2015-01-12 12:32 am (UTC)особенно сладко будет тому, кто потом будет это г... отлаживать:)
no subject
Date: 2015-01-12 12:37 am (UTC)