|
Модераторы: LSD |
|
Vanro |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 29.3.2013 Репутация: нет Всего: нет |
Нужна помощь в выборе языка программирования для дальнейшего изучения.
Критерии: - написание программ под "инженерное" железо (аналого-цифровые преобразователи, термометры и т.д.); - написание программ под Windows либо Linux; - работа с периферией (юсб, лпт порты); - дальнейшее развитие в программировании... Сам инженер-механик, т.е. техническое образование, достаточно усидчив, навыки требуются для дальнейшего развития в сфере образования (преподаватель, к.т.н.) хотелось бы научиться и создавать профильные программы по определению воздействия на почву, поведению металлоконструкций и т.п. На данный момент думается язык С. В ВУЗе есть программа LabVIEW (если не ошибаюсь это язык G). На другом форуме писал - рекомендовали С или Assembler. Спасибо. |
|||
|
||||
LSD |
|
|||
Leprechaun Software Developer Профиль Группа: Модератор Сообщений: 15711 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 537 |
Тут действительно два варианта: С или Assembler. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
CompWorm |
|
|||
Допеределыватель Профиль Группа: Участник Клуба Сообщений: 1689 Регистрация: 6.12.2004 Где: / Репутация: нет Всего: 31 |
если тебе надо данные на юсб/лпт крутить, то с этим справится любой системный язык. в общем случае всё сводится к работе с АПИ операционки линукс/виндус.
соответственно выбрать надо удобный живой язык для этих целей, чтоб программу можно было переносить между компами и пересобрать через 10 лет. ассемблер привязан к железу, поэтому на роль долговечного и портабельного он ну никак не тянет, а вот С и С++ вполне портабельны и подойдут для общения с через внешний порт. кроме того, популярные микроконтроллеры, типа AVR и PIC тоже могут С и С++. на случай если тебе надо собрать собственную приблуду, мигающую лампочками, эти языки ты уже будешь знать. возникае вопрос - удобны ли они для научной части и что считать живучестью языка. вот это уже вопрос религиозно-философский. в общем случае рекомендуется разбить программу на несколько отдельныйх модулей, общающихся друг с другом через тобой определённый интерфейс. эти модули могут быть написаны на разных языках. например, работу с портом можно написать на rust, ибо он нацелен на минимизацию ошибок, математику, к примеру, на Haskell и графику на каком-нибудь ещё языке... в этом случае каждый язык удобен для своей задачи, и если один из языков помрёт, переписывать надо будет только один кусок. языки - это инструменты для решения различных задач - не надо считаль С/C++ панацеей, его уже считают окаменевшим ###м мамонта и его в любой момент может постичь судьба таких гигантов, как Fortran и Delphi. |
|||
|
||||
Vanro |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 29.3.2013 Репутация: нет Всего: нет |
понимаю, это хорошо, что модульно, хорошо, что применяешь различные языки,
НО их то знать нужно! А я хочу научиться более менее универсальному, который справится с задачами... |
|||
|
||||
CompWorm |
|
|||
Допеределыватель Профиль Группа: Участник Клуба Сообщений: 1689 Регистрация: 6.12.2004 Где: / Репутация: нет Всего: 31 |
Vanro, ну а какой ответ ты от нас тогда ожидал? тебе уже на двух форумах все хором сказали - начни с Си...
он вполне универсальный, но быть может неудобный для всех частей решаемой проблемы. Это сообщение отредактировал(а) CompWorm - 16.1.2017, 13:34 |
|||
|
||||
neutrino |
|
|||
Gothic soul Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: нет Всего: 62 |
Присоединяюсь к CompWorm. Советую Си. Он универсален и не привязан к железу (немного привязан к компиляторам, но всегда можно уменьшить этот эффект). Если рассматривается написание общего кода под линукс и виндоуз, то тут очень немногое получится шэрить (на уровне драйвера). В основном какие-то общие структуры для железки, регистры.
Если имеется в виду написание программ для USB, то есть готовые библиотеки например для Java. Тогда можно даже тот же самый код использовать и на виндоуз и на линукс. Все зависит от уровня низкоуровневости Я страшный противник С++, поэтому его не советую. Могу обосновать, но нужно еще запушить несколько коммитов... и нервов жалко -------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
Vanro |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 29.3.2013 Репутация: нет Всего: нет |
Уважаемый CompWorm, прошу вас не обижаться, т.к. я в принципе не против вашего ответа, он довольно таки познавательный был.
А первоначально мне ответили 2 слова - С, Assembler. Спасибо на наставление и направление, буду пытаться изучить С/С++, что то из них... |
|||
|
||||
CompWorm |
|
|||
Допеределыватель Профиль Группа: Участник Клуба Сообщений: 1689 Регистрация: 6.12.2004 Где: / Репутация: нет Всего: 31 |
Vanro, никто ни на кого не обижается и ещё с фидонета в интернете принято общаться на "ты". а односложные ответы тебе дают, потому что так у программистов принято - есть вопрос, вот ответ, остальное - в поиск или отдельной темой.
я дал ответ, в основном опираясь на фразу
я так подозреваю, что преподавать студентам или вести научную работу ты собрался не на тему особенности устройства ЮСБ портов, а на тему металлов и почвы. поэтому я предлагаю отделить низкоуровневое (микропроцессоры, порты итп) от высокоуровневого (математика, хранение обработка и вывод данных). передача данных на внешний порт - задача типовая, есть готовые примеры для всех системных языков, учить там особо много не надо. Си и уж тем более ассемблер тебе понадобится только если ты создаёшь свои собственные контроллеры. и то без них можно обойтись в ряде случаев (например подцепив Raspberry Pi + Python или ещё какой хардверный модуль с переачей данных по сети ). Вангую, что по началу данные ты будешь собирать с каких-то покупных устройств, а не самопальных. и на этот случай есть современные языки высокого уровня, с хорошей абстракцией... neutrino тебе правильно указал на Java для этого случая. но мир на си и джаве не заканчивается. но мы же не знаем что ты там собрался комбинировать... если особой секретности нет, может скооперитироваться с другим институтом, где есть факультет программирования и тогда каждый будет делать то, что должен... чем больше деталей своего проекта ты раскроешь, тем точнее и разносторонней будут ответы. Это сообщение отредактировал(а) CompWorm - 16.1.2017, 19:45 |
|||
|
||||
Vanro |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 29.3.2013 Репутация: нет Всего: нет |
я защитил кандидатскую работу по воздействию гусеничных движителей на почву, в будущем планирую использовать приобретенные знания для написания (возможно) докторской...
Понимаете ли это не дела одного-двух лет... как и научится программировать - не дело 1-2 лет (как мне кажется, хотя вам виднее) студентам я лишь в последствии могу показывать работу программы на определенных примерах (например метод конечных элементов - т.е. компьютерное моделирование поведения элементов в зависимости от начальных условий, усилий, давлений, конструкции...) кстати говоря создание своей программы моделирования по методу конечных элементов (МКЭ) - ваще идеальный вариант!!! на данный момент (а это 1 этап 1 этапа начального обучения программированию - сбор информации...... короче я ваще ниче не знаю про программирование...) создание собственной программы - это создание визуального красивого окна, где бегают графики (эпюры) давлений или т.п. Пример (подошло бы к моей диссертации. на данный момент этот этап пройден, надо двигаться дальше и думать новые темы...): в почве датчик давления, зарывается на разную глубину... на траке гусеницы - датчики давления, например 6 штук + замеряется скорость движения трактора... на компьютере открыто окно, в которомнесколько колонок: в одной - калибровка датчиков, в другой - визуализация опыта - графики (эпюры) давлений, в третьей - числовой массив данных + кнопочки старт/стоп записи +менюшка, типа сохранить, на печать, передать в эксель и т.п..... вот так я вижу программирование, если я ошибаюсь поправьте меня по поводу скооперироваться и делать именно свою работу... - можно, но черт возьми амбиции |
|||
|
||||
SVN74 |
|
|||
Опытный Профиль Группа: Участник Сообщений: 740 Регистрация: 5.5.2008 Где: Комсомольск на Дн епре Репутация: нет Всего: 18 |
Java + С = может все...
|
|||
|
||||
tzirechnoy |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: нет Всего: 16 |
Я на tcl/tk такие вещи обычно пишу. По факту, трудно придумать язык, на котором это было бы нереально. И трудно придумать менее подходящий язык, чем assembler. Добавлено через 5 минут и 8 секунд И да, C в общем довольно неплох, если бы не одно но: он относительно сложэн для новичка. Вся эта ручная работа по выделению памяти, адресная арифметика... Опять жэ, массы левых способов прострелить себе ногу... В общем, есть отличная от нуля вероятность, что какой-нибудь простеннький скриптовый язык (тот жэ lua. Или tcl. Или racket.) вы в качестве первого нормально освоите, а Си -- нет, в смысле, завязните в его изучении на несколько лет. |
|||
|
||||
tzirechnoy |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: нет Всего: 16 |
И да, как честный человек я обязан обратить твоё внимание на python. Это, в общем, lingua franca для современной инжэнерно-прикладной науки. Кучи алгоритмов, примеров, библиотек, вращающихся в научном сообществе, написаны на нём или для него.
При этом это вполне отвратительный язык. Я бы просто не рекомендовал его в качестве первого: чтобы меньшэ учиться тому, как не надо делать. У него отвратительная модэль поведения при ошыбках (выкидывает плоходокументированные исключения), он объектный сильно большэ, чем это логично, в общем, не люблю я его. Но знать его в итоге придётся. |
|||
|
||||
Vanro |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 29.3.2013 Репутация: нет Всего: нет |
Мне почему то советуют визуал бэйсик, говорят типа это легкий язык для изучения и т.д. + свободное ПО
|
|||
|
||||
neutrino |
|
|||
Gothic soul Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: нет Всего: 62 |
Я очень не советую вижуал бейсик. Он ничем не легче других нормальных языков. Нет много библиотек. Он непопулярен. Ужасный с т.з. программирования стиль написания.
Думаю начать все таки с Си правильнее, чтобы потом например перейти на Джава. Без основ вся эта абстрактная колбаса Джавы покажется как книга не о чем. -------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
Vanro |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 29.3.2013 Репутация: нет Всего: нет |
а самостоятельно реально втянуться или все ж на курсы надо...?
кстати лучше начать просто с "СИ"? |
|||
|
||||
Правила форума "Разные вопросы" | |
|
Сюда нужно постить только темы, которые нельзя отнести ни к одному из существующих разделов. Если вы не уверены, то просмотрите еще раз заголовки форумов, карту форума или попробуйте воспользоваться поиском.
С уважением, Smartov. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разные вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |