Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выбор языка программирования, для технических нужд 
:(
    Опции темы
Vanro
Дата 14.1.2017, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 29.3.2013

Репутация: нет
Всего: нет



Нужна помощь в выборе языка программирования для дальнейшего изучения.
Критерии:
- написание программ под "инженерное" железо (аналого-цифровые преобразователи, термометры и т.д.);
- написание программ под Windows либо Linux;
- работа с периферией (юсб, лпт порты);
- дальнейшее развитие в программировании...

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

На данный момент думается язык С.
В ВУЗе есть программа LabVIEW (если не ошибаюсь это язык G).

На другом форуме писал - рекомендовали С или Assembler.

Спасибо.
PM MAIL   Вверх
LSD
Дата 16.1.2017, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15709
Регистрация: 24.3.2004

Репутация: 9
Всего: 537



Цитата(Vanro @  14.1.2017,  21:24 Найти цитируемый пост)
- написание программ под "инженерное" железо (аналого-цифровые преобразователи, термометры и т.д.);

Тут действительно два варианта:  С или 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.
PM MAIL WWW   Вверх
CompWorm
Дата 16.1.2017, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


Профиль
Группа: Участник Клуба
Сообщений: 1689
Регистрация: 6.12.2004
Где: /

Репутация: нет
Всего: 31



если тебе надо данные на юсб/лпт крутить, то с этим справится любой системный язык. в общем случае всё сводится к работе с АПИ операционки линукс/виндус.
соответственно выбрать надо удобный живой язык для этих целей, чтоб программу можно было переносить между компами и пересобрать через 10 лет.

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

возникае вопрос - удобны ли они для научной части и что считать живучестью языка. вот это уже вопрос религиозно-философский.

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

например, работу с портом можно написать на rust, ибо он нацелен на минимизацию ошибок, математику, к примеру, на Haskell и графику на каком-нибудь ещё языке... в этом случае каждый язык удобен для своей задачи, и если один из языков помрёт, переписывать надо будет только один кусок.

языки - это инструменты для решения различных задач - не надо считаль С/C++ панацеей, его уже считают окаменевшим ###м мамонта и его в любой момент может постичь судьба таких гигантов, как Fortran и Delphi.


--------------------
PM MAIL   Вверх
Vanro
Дата 16.1.2017, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 29.3.2013

Репутация: нет
Всего: нет



понимаю, это хорошо, что модульно, хорошо, что применяешь различные языки,
НО
их то знать нужно!

А я хочу научиться более менее универсальному, который справится с задачами...
PM MAIL   Вверх
CompWorm
Дата 16.1.2017, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


Профиль
Группа: Участник Клуба
Сообщений: 1689
Регистрация: 6.12.2004
Где: /

Репутация: нет
Всего: 31



Vanro, ну а какой ответ ты от нас тогда ожидал? тебе уже на двух форумах все хором сказали - начни с Си... 
он вполне универсальный, но быть может неудобный для всех частей решаемой проблемы.

Это сообщение отредактировал(а) CompWorm - 16.1.2017, 13:34


--------------------
PM MAIL   Вверх
neutrino
Дата 16.1.2017, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



Присоединяюсь к CompWorm. Советую Си. Он универсален и не привязан к железу (немного привязан к компиляторам, но всегда можно уменьшить этот эффект). Если рассматривается написание общего кода под линукс и виндоуз, то тут очень немногое получится шэрить (на уровне драйвера). В основном какие-то общие структуры для железки, регистры.

Если имеется в виду написание программ для USB, то есть готовые библиотеки например для Java. Тогда можно даже тот же самый код использовать и на виндоуз и на линукс. Все зависит от уровня низкоуровневости smile

Я страшный противник С++, поэтому его не советую. Могу обосновать, но нужно еще запушить несколько коммитов... и нервов жалко smile


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
Vanro
Дата 16.1.2017, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 29.3.2013

Репутация: нет
Всего: нет



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

Спасибо на наставление и направление, буду пытаться изучить С/С++, что то из них...

PM MAIL   Вверх
CompWorm
Дата 16.1.2017, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


Профиль
Группа: Участник Клуба
Сообщений: 1689
Регистрация: 6.12.2004
Где: /

Репутация: нет
Всего: 31



Vanro, никто ни на кого не обижается  smile и ещё с фидонета в интернете принято общаться на "ты". а односложные ответы тебе дают, потому что так у программистов принято - есть вопрос, вот ответ, остальное - в поиск или отдельной темой.

я дал ответ, в основном опираясь на фразу
Цитата(Vanro @  14.1.2017,  20:24 Найти цитируемый пост)
для дальнейшего развития в сфере образования (преподаватель, к.т.н.) ...  программы по определению воздействия на почву, поведению металлоконструкций и т.п.

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

передача данных на внешний порт - задача типовая, есть готовые примеры для всех системных языков, учить там особо много не надо. Си и уж тем более ассемблер тебе понадобится только если ты создаёшь свои собственные контроллеры. и то без них можно обойтись в ряде случаев (например подцепив Raspberry Pi + Python или ещё какой хардверный модуль с переачей данных по сети ). 

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

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

Это сообщение отредактировал(а) CompWorm - 16.1.2017, 19:45


--------------------
PM MAIL   Вверх
Vanro
Дата 16.1.2017, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 29.3.2013

Репутация: нет
Всего: нет



я защитил кандидатскую работу по воздействию гусеничных движителей на почву, в будущем планирую использовать приобретенные знания для написания (возможно) докторской...
Понимаете ли это не дела одного-двух лет... как и научится программировать - не дело 1-2 лет (как мне кажется, хотя вам виднее)
студентам я лишь в последствии могу показывать работу программы на определенных примерах (например метод конечных элементов - т.е. компьютерное моделирование поведения элементов в зависимости от начальных условий, усилий, давлений, конструкции...)
кстати говоря создание своей программы моделирования по методу конечных элементов (МКЭ) - ваще идеальный вариант!!!


на данный момент (а это 1 этап 1 этапа начального обучения программированию - сбор информации...... короче я ваще ниче не знаю про программирование...) создание собственной программы - это создание визуального красивого окна, где бегают графики (эпюры) давлений или т.п.

Пример (подошло бы к моей диссертации. на данный момент этот этап пройден, надо двигаться дальше и думать новые темы...):
в почве датчик давления, зарывается на разную глубину...
на траке гусеницы - датчики давления, например 6 штук
+ замеряется скорость движения трактора...
на компьютере открыто окно, в которомнесколько колонок: в одной - калибровка датчиков, в другой - визуализация опыта - графики (эпюры) давлений, в третьей - числовой массив данных + кнопочки старт/стоп записи +менюшка, типа сохранить, на печать, передать в эксель и т.п.....

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

по поводу скооперироваться и делать именно свою работу... - можно, но черт возьми амбиции
PM MAIL   Вверх
SVN74
Дата 16.1.2017, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 5.5.2008
Где: Комсомольск на Дн епре

Репутация: нет
Всего: 18



Java + С  = может все... smile   
PM MAIL WWW   Вверх
tzirechnoy
Дата 19.1.2017, 05:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: нет
Всего: 16



Цитата(LSD @ 16.1.2017,  12:42)
Цитата(Vanro @  14.1.2017,  21:24 Найти цитируемый пост)
(аналого-цифровые преобразователи, термометры и т.д.);

Тут действительно два варианта:  С или Assembler.

Я на tcl/tk такие вещи обычно пишу.

По факту, трудно придумать язык, на котором это было бы нереально.

И трудно придумать менее подходящий язык, чем assembler.

Добавлено через 5 минут и 8 секунд
И да, C в общем довольно неплох, если бы не одно но: он относительно сложэн для новичка. Вся эта ручная работа по выделению памяти, адресная арифметика... Опять жэ, массы левых способов прострелить себе ногу...

В общем, есть отличная от нуля вероятность, что какой-нибудь простеннький скриптовый язык (тот жэ lua. Или tcl. Или racket.) вы в качестве первого нормально освоите, а Си -- нет, в смысле, завязните в его изучении на несколько лет.
PM MAIL   Вверх
tzirechnoy
Дата 19.1.2017, 06:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: нет
Всего: 16



И да, как честный человек я обязан обратить твоё внимание на python. Это, в общем, lingua franca для современной инжэнерно-прикладной науки. Кучи алгоритмов, примеров, библиотек, вращающихся в научном сообществе, написаны на нём или для него.

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

Но знать его в итоге придётся.
PM MAIL   Вверх
Vanro
Дата 19.1.2017, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 29.3.2013

Репутация: нет
Всего: нет



Мне почему то советуют визуал бэйсик, говорят типа это легкий язык для изучения и т.д. + свободное ПО
PM MAIL   Вверх
neutrino
Дата 19.1.2017, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



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


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
Vanro
Дата 19.1.2017, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 29.3.2013

Репутация: нет
Всего: нет



а самостоятельно реально втянуться или все ж на курсы надо...?
кстати лучше начать просто с "СИ"?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Разные вопросы"
Smartov

Сюда нужно постить только темы, которые нельзя отнести ни к одному из существующих разделов. Если вы не уверены, то просмотрите еще раз заголовки форумов, карту форума или попробуйте воспользоваться поиском.
Если вы все же не смогли найти подходящего раздела - создавайте тему здесь.


С уважением, Smartov.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разные вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1888 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.