Блог о программном обеспечении

Зачем оно нужно?
Публиковать для себя разные вещи, чтобы потом не искать их у себя по разным папкам.
И, конечно, - делиться открытой информацией с другими.
Коротко по темам Caelinux - самый инженерный дистрибутив линукс;
CalculiX - мощная программа для расчетов по МКЭ;
OpenOffice Basic - то что легче выучить и затем эффективно использовать
Maxima - символьная математика от Вильяма Шеллтера, профессора Остинского университета. Все прочее - понемногу.

Basic и об языках программирования для инженера

В этом посте я напишу о Basic и немного остановлюсь на языках программирования.
Начнем с того, что такое Basic и чем он хорош и плох. И нужно ли знать инженеру какие либо языки программирования или нет.
В целом вы можете прочитать о Бэйсик в википедии http://ru.wikipedia.org/wiki/BASIC
Важной вехой развития языка была система http://en.wikipedia.org/wiki/CA-Realizer  В России о ней почти ничего не известно, не получила распространения в свое время. Сейчас интернет несколько повычищен, и даже скрины с нее сложно найти.
Коротко - это была ультра простая и эффективная RAD для Бэйсик, с упором на инженеров. В целом - все как в Visual Basic или Delphi, плюс такие компоненты как построение графиков и так далее. Система 16 битная, сейчас программы на ней едва ли можно использовать нормально.
Популярным и самым известным на все времена был и останется Microsoft Visual Basic, который в конечном итоге CA-Realizer и одолел (то есть сложно сказать - как именно одолел, но последний даже с учетом популярности свернул свое развитие).  Visual Basic также не смотря на популярность прекратил свое существование по причинам общей политики корпорации, которая решила что надо продвигать C# и создала взамен Бэйсик Visual Basic.NET - адскую смесь бэйсика с си-шарпом, которая собственно Бэйсиком не является, а скорее является его антирекламой и антиподом.Частью этой политики является в том числе и продвижение парадигмы ООП - можете погуглить и почитать что это такое и критику на этот счет.
Так какой язык лучше для инженера и нужен ли он вообще?
Коль инженер использует компьютер в повседневной работе - язык программирования всего лишь средство взаимодействия с компьютером, и поэтому конечно знать какой то язык необходимо. Чтобы точнее выразиться, несколько строчек кода в текстовом редакторе, это своего рода интерфейс, который вкупе с copy&paste>correct it позволяет быстро достигать желаемого.
Иногда то что привыкли понимать под интерфейсом (запустить ярлык, открыть файл, нажать кнопочку, потом нажать другую кнопочку) на самом деле менее эффективно, чем все то же самое реализовать несколькими строчками кода.
Человеку выбирая тот или иной язык легко впасть в искушение и выбрать инструмент коммерческий и высокопрофессиональный, но никак не простой. По принципу "так все большие дяди делают".  Не разу я не видел чтобы такой подход приносил кому либо практическую пользу. Для профессиональных коммерческих программ используют разные языки в зависимости от желаемой цели. В целом такой подход "брать пример" - порочен даже не только в вопросе программирования а и во многих областях жизни - грубо говоря если вы слесарь, то вы не будете ориентироваться на образ жизни миллионера. Миллионером вы от этого не станете, а проблемы поимеете. Слесарь ведет собственный образ жизни по своим средствам, получая в конечном итоге не меньше, а то и больше (в каком хотите смысле). Если вы маленькая компания - вы не можете строить бизнес процессы ориентируясь на крупные компании, вы опять же вылетите в трубу.
Язык программирования должен быть максимально прост для вас и понятен, должен быть достаточно популярен чтобы найти справочную информацию и должен быть свободен чтобы (читайте выше про CA-Realizer) не зависеть от глобальной политики крупных компаний, и оставить себе возможность свободного выбора.
К слову, не так мало хороших и открытых языков - скорее почти все.
Языки совместимые с WEB-ом в настоящий момент наиболее хороши, с учетом того что скоро, вполне возможно, локальный софт исчезнет совсем и вся активность переместится в веб и облака.
Basic скорее жив чем мертв. Строго говоря VB.NET - не бэйсик и скорее всего просуществует недолго.  Есть так называемый rapid-q basic и rq-work basic, это такой порт с паскаля на бэйсик, который популярен у французского комьюнити в основном, но это тоже полудохлое направление. Более живым языком похожим на Бэйсик является Паскаль. Не смотря на ликвидацию техасской компании Borland у паскаля есть вполне достойный открытый последователь - Lazarus Free Pascal. Переход с Бэйсика на паскаль не так уж и сложен. Если вы занимаетесь расчетами в электронных таблицах - все еще живы такие языки как VBA и Open Office Basic
про последний применительно к инженерному делу вы можете прочитать статьи по ссылкам

http://myooo.ru/content/view/172/95/

http://myooo.ru/content/view/173/95/

А также посмотреть книги вот тут

http://www.pitonyak.org/

Хороший пример для выбора - Python. Это более сложный и мощный язык, нежели бэйсик, для простых вещей он как правило избыточный. Минус пайтона - некоторая сложность распространения конечных программ, необходимость для пользователя устанавливать сам пайтон и к тому же не всякий еще и сможет запустить его из консоли. То есть пайтон - это такой язык вечных исходников, поэтому лучше всего распространять приложения на нем вместе со всеми библиотеками (что увеличивает вес дистрибутива, но зато делает его работающим "из коробки". Инструментов для создания пользовательского интерфейса к Пайтон много, начиная со стандартного TK, но это далеко не Вижуал Бэйсик по удобству и скорости.
Кроме того существует два рабочих направления python - второй и третий, что создает некоторую сумятицу.

javascript - открытый бразузерный язык, то есть средой его исполнения является веб-браузер. Это язык, обласканный google, наверно не будет лишним скиллом выбрать именно его. К тому же есть возможность писать пользовательские функции для электронных таблиц Google.


В вопросе "инженер и программирование" есть важный момент, который нельзя не упомянуть. Не увлекайтесь программированием слишком! Инженер имеет свои собственные знания и свою собственную область и должен быть творцом именно в ней. Примеров когда инженеры сливают свой творческий потенциал в "программирование" очень много, никто не только не стал миллионером, но и просто полезных продуктов таким образом почти не создано.  Изучайте новые и старые материалы, технологии, механизмы, конструкции - анализируйте и создавайте новые, будете куда полезней и себе и обществу.





1 comment:

  1. Спасибо за пост! Хорошие рассуждения, дают пищу для раздумий. Для себя вижу в изучении языков программирования огромный потенциал, но пробелы в образовании не дают платформы для быстрого старта в этом направлении. Ваше сообщение в значительной мере позволило систематизировать кучу разношёрстной информации у меня в голове.
    С уважением, Андрей С.

    ReplyDelete