![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
Vanro |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 29.3.2013 Репутация: нет Всего: нет |
Нужна помощь в выборе языка программирования для дальнейшего изучения.
Критерии: - написание программ под "инженерное" железо (аналого-цифровые преобразователи, термометры и т.д.); - написание программ под Windows либо Linux; - работа с периферией (юсб, лпт порты); - дальнейшее развитие в программировании... Сам инженер-механик, т.е. техническое образование, достаточно усидчив, навыки требуются для дальнейшего развития в сфере образования (преподаватель, к.т.н.) хотелось бы научиться и создавать профильные программы по определению воздействия на почву, поведению металлоконструкций и т.п. На данный момент думается язык С. В ВУЗе есть программа LabVIEW (если не ошибаюсь это язык G). На другом форуме писал - рекомендовали С или Assembler. Спасибо. |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Тут действительно два варианта: С или 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 Репутация: нет Всего: нет |
а самостоятельно реально втянуться или все ж на курсы надо...?
кстати лучше начать просто с "СИ"? |
|||
|
||||
SVN74 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 5.5.2008 Где: Комсомольск на Дн епре Репутация: нет Всего: 18 |
Лучше по книгам, благо их очень много на любую тему. Конфигурация "сишных" ЯП такая: (Синтаксис "С") + дополнение ООП = получаем С++ (на самом деле Вы ничего не упустите если сразу начнете с С++). Далее С++ / на ООП = получаем Java... ![]() Все очень просто... С++ - это обвертка над С, а Java это обвертка над С++... Чем выше обвертка, тем медленнее скорость выполнения и дальше дистанция от железа, но больше кода, который уже написали за Вас, который очень упрощает жизнь... ![]() Если скорость не критична, - на Java писать можно ВСЕ - (быстро, надежно, кроссплатформенно, с ГИГАНТСКИМ набором доступных (бесплатных) библиотек), ну а если понадобится не тривиальный доступ к железу, Вы всегда сможете дописать на С++ свои функции для Java ... ![]() В пользу Java говорит еще один факт, - это поддержка в новых версия старого кода, - то бишь Ваш код буде работать и через 20 лет... ![]() Девиз Java разработчиков "Один раз написал, - работает везде"... ![]() К тому же библиотеки Java постоянно (автоматически) обновляются, что делает Ваши программы более устойчивыми к ошибкам... Ну последнее, что можно сказать в пользу Java - это (постоянное) продолжение искать НОВОЕ... Чего стоит хотя бы библиотека JavaFX, которую ввели в основной дистрибутив Java, - много ли ЯП могут похвастаться таким шикарным GUI ? ... ![]() |
|||
|
||||
tzirechnoy |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: нет Всего: 16 |
И да, бейсик -- это отличный пример языка, который во всём хужэ питона. В том числе последний Visual Basic .NET, который конечно на голову лучшэ классического бейсика.
Я, когда начинаю псить на питон, всегда вспоминаю, что на его месте мог быть бейсик, и это несколько примиряет меня с мирозданием. При этом, в отличие от питона, этот бейсик ещё и довольно дохлый. В смысле -- вот этот последний или предпоследний VB.NET сейчас использует мизерное количество людей. Под него ужэ окончательно нет задач, для которых его сейчас можно было бы использовать. Кстати, многие русские преподаватели будут советовать не VB.NET, а VB 6.0. Тут надо сразу вспомнить, что последний релиз VB 6.0 состоялся почти 20 лет назад, и он ужэ не довольно дохлый, а совсем дохлый. Развивать его или хотя бы адаптировать под новые системы никто не будет и не можэт. |
|||
|
||||
Vanro |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 29.3.2013 Репутация: нет Всего: нет |
мне как раз таки преподаватель и советовал VB.NET, у нее у самой VB 6.0
короче старье... Это сообщение отредактировал(а) Vanro - 19.1.2017, 12:06 |
|||
|
||||
tzirechnoy |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: нет Всего: 16 |
Можэт, и не упустит. Но скорее -- всё-таки упустит. Во-первых, C++ -- он очень мультипарадигменный, код из разных туториалов можэт отличаться просто как небо и земля. Можэт быть "почти С", можэт быть практически автоматическое управление памятью через всякие auto_ptr и хранение всего-всего на стэке, можэт быть функцыонльно-подобный стиль Александреску, с автоматическими деструкторами всего что только можно и жуткой рекурсией, можэт быть вообще практически статическое расположэние памятью, с развёрткой всего что можно в compile-time через шаблоны. При этом упустить классический стиль, и вообще любой стиль программирования при изучении C++ -- легко.
То-то у нас столько виртуалок для запуска всякой предыдущей джавы для управления всяким 10-летнего возраста хламом понатыкано. На самом деле, мир Java -- он очень своеобразный, и в любом случае ни с какой стороны обёрткой для C++ или расшырением C++ джава не является. К тому жэ, замечание про "если не важна скорость" вот не зря появилось. В принцыпе, скорость хорошо, под быстрое выполнение написанного кода на Java довольно велика. Вот только мал его процэнт. А большынство из тех тонн библиотек, в том числе в стандартной поставке, написано дико совершэнно. Не тормозящего java-кода практически не существует. |
||||
|
|||||
Vanro |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 29.3.2013 Репутация: нет Всего: нет |
наткнулся вот на это "Язык программирования устройств Ардуино основан на C/C++"
стоит ли мне начать с этого, подкупает вот это, этой информации мне кажется мне и не хватает... причем я смогу проверять работу написанной программы "в железе" а когда разберусь с построением кода, смогу перейти к более сложным программам...!? |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
А вот тут поподробней, это что-же в JDK написано плохо с т.з. производительности? В принцыпе, скорость хорошо, под быстрое выполнение написанного кода на C++ довольно велика. Вот только мал его процэнт. А большынство из тех тонн библиотек, в том числе в стандартной поставке, написано дико совершэнно. Не тормозящего C++-кода практически не существует. -------------------- 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. |
|||
|
||||
tzirechnoy |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: нет Всего: 16 |
Оба-два графических тулкита, например (JavaFX и Swing). |
|||
|
||||
SVN74 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 5.5.2008 Где: Комсомольск на Дн епре Репутация: нет Всего: 18 |
JavaFX продолжает совершенствоваться, а Swing для своего времени совершенен... Вы мне скажите, сколько чистых ЯП имеют свой GUI как часть самого ЯП ? В Java тулкит GUI является частью ЯП, в то время как у остальных тулкиты GUI завязаны на (оси) исполнения... |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Ну же, где подробности? Что конкретно там плохо? Нет в нем никаких перфоманс проблем. Есть компромиссы между гибкостью и производительностью. И опять же это просто фреймворк, производительность на 90% зависит от того кто и как его использует. На Swing есть большое количество быстрых и отзывчивых UI приложений. -------------------- 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 |
...и потому придумали Rust с нулевой стоимостью обёртки. длятехкто решил похоливарить на тему производительности - стоимость программизма сейчас выше стоимости железа. точка. ну я вот буквально пару месяцев назад мучался с переводом Java 2 на 6, как раз кусок про COM-порт. там этот RxTx гнилой, который уже никто не поддерживает... нет, с железом у джавы не всё так просто в плане переносимости. просто так абы какой датчик на джаве крутить страшновато. щас ещё мода пошла к внешним устройствам SDK на .NET писать... и начинаются всякие извраты с IKVM =( я бы попросил автора выплюнуть сюда список моделей внешних устройств... там что-то про LPT порты в начале было)))))) про МКЭ есть тонкость - надо сразу подумать за мультипоточность. отдельное ядро не шипко могуче, подсчёт небольшой сетки измеряется в минутах. поэтому, если тебе надо более-менее в реалтайме пересчитывать сетку, то без мультипоточности МКЭ не катит. ардуино тебе это точно не осилит, зато он мог бы собирать данные с датчиков и по сети отправлять в аудиторю для анализа и отрисовки на джаве перед студентами. ...и им же трактор катать по полю, если чо. Это сообщение отредактировал(а) CompWorm - 20.1.2017, 14:14 |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: нет Всего: 146 |
Borland C++/Delphi Visual C++ есть комплекты установок с уже добавленным к компилятору библиотек по типу Qt ... везде где установлена виртуальная машина явы! так же как и дот нет работает , только там где установлены фреймворки дот нета ..... -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
SVN74 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 5.5.2008 Где: Комсомольск на Дн епре Репутация: нет Всего: 18 |
![]() и к ЯП не имеет никакого отношения...
фреймворки дот нета так же к ЯП не имеют никаких отношений... Разница состоит в том, что JMV это как своя OS, для которой и пишет программер, и все GUI является ее неотъемлемой частью, доступ к которым введен в ЯП. |
||||
|
|||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: нет Всего: 146 |
все языки (в том числе и ява) в той или иной степени дергают WinApi ... так какая разница кто и когда? весь дот нет (си шарп, васик дот нет , дельфи дот нет и т.п. ) без фреймворков попросту не запустится! так же как ява не запустится без своей ява машины!
так в чем плюс то? ну является это частью языка (который все равно , в винде, будет дергать вин апи! т.е. будет оберткой) и что время исполнения будет только увеличиваться! (ну напишем мы программу на си и на яве, и запустим их ,так что б уж совсем интересно стало, на пентиуме первом.... кто будет работать, а кто нет? .. конечно если запустить на интеле с 16 ядрами и 8 гигами оперативы ... то они будут работать почти одинаково %) ) -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
SVN74 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 5.5.2008 Где: Комсомольск на Дн епре Репутация: нет Всего: 18 |
||||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: нет Всего: 146 |
это плюс , если надо работать в разных системах, а если нет! каждый язык силен в своем, но писать можно на любом! -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Разные вопросы" | |
|
Сюда нужно постить только темы, которые нельзя отнести ни к одному из существующих разделов. Если вы не уверены, то просмотрите еще раз заголовки форумов, карту форума или попробуйте воспользоваться поиском.
С уважением, Smartov. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разные вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |