| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Какой язык перспективен для инженера-конструктора с условием

Какой язык перспективен для инженера-конструктора с условием

Результаты опроса: Какой язык перспективен для инженера-конструктора?
С/С++ 57 14.69%
Delphi 17 4.38%
Пайтон 39 10.05%
Фортран 1 0.26%
Basic/VB/VBA/VB.NET 93 23.97%
джава 7 1.80%
другой, какой - см. по тексту 29 7.47%
матерный 145 37.37%
Голосовавшие: 388. Вы ещё не голосовали в этом опросе

Ответ
Поиск в этой теме
Непрочитано 23.03.2007, 21:50
Какой язык перспективен для инженера-конструктора с условием
The_Mercy_Seat
 
Сообщений: n/a

Предполагается что инженер-строитель использует как AutoCAD (или его клоны) так и расчетные программы узкостроительного направления, времени на изучение минимум. Требуется получить наибольший практический эффект от владения данным языком.
Просмотров: 261125
 
Непрочитано 10.02.2017, 06:46
#321
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Цитата:
Сообщение от Владимир_М Посмотреть сообщение
И все-таки хочу повторить свою мысль. Важно определиться сначала с уровнем решаемых задач. Если речь именно о конструкторе, которому нужны всего лишь какие-то чертилки, параметризация каких-то конструкций, то может вполне хватить и VBA
А Вам в который раз пытаются объяснить, что Ваша мысль не верна и я , кажется, начинаю понимать почему это объяснение не достигает цели.
ИМХО, Вы путаете сам ЯЗЫК ПРОГРАММИРОВАНИЯ с МЕТОДАМИ ВЗАИМОДЕЙСТВИЯ этого языка с окружающим миром.
Попробую пояснить, VBA взаимодействует с AutoCAD по средством COM, для наглядности это можно представить как будто автокад, это кукла на верёвочках, а VBA это кукловод.
От смены кукловода, поведение куклы практически не измениться, останутся все те же веревочки и все тот же ограниченный набор команд. По этому, не имеет значение по средством какого языка взаимодействовать с COM автокада, смысл и объем написанного кода будет одинаковый, хоть на VBA, хоть на Java, хоть на С#, а вот синтаксис будет несколько отличаться.

Однако топик все таки про ЯЗЫК ПРОГРАММИРОВАНИЯ, а не про модель взаимодействия.
Boxa вне форума  
 
Непрочитано 10.02.2017, 07:49
#322
Владимир_М


 
Регистрация: 05.11.2015
Сообщений: 585


Цитата:
Сообщение от Boxa Посмотреть сообщение
По этому, не имеет значение по средством какого языка взаимодействовать с COM автокада
Да кто ж спорит. Это понятно.
Цитата:
Сообщение от Boxa Посмотреть сообщение
смысл и объем написанного кода будет одинаковый, хоть на VBA, хоть на Java, хоть на С#,
Я вот про это, что на ваших же картинках. Вот мне почему-то очевидно, что и объем кода поменьше и синтаксис попроще у VBA.
А если результат одинаков, так в чем смысл?
Владимир_М вне форума  
 
Непрочитано 10.02.2017, 08:18
#323
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Цитата:
Сообщение от Владимир_М Посмотреть сообщение
объем кода поменьше
Объем кода одинаковый, отличие в одной строчке (20), получающей объект автокада для работы, в VBA точно так же подключаются, скажем, к Excel.
Это ничего не меняет.
При желании все то же самое можно уместить в 3 строчки:
Код:
[Выделить все]
 AcadApplication AcadApp = (AcadApplication)Marshal.GetActiveObject("AutoCAD.Application");
AcadCircle Circle = AcadApp.ActiveDocument.ModelSpace.AddCircle(new double[] { 0, 0, 0 }, 5);
AcadApp.ZoomAll();
Цитата:
Сообщение от Владимир_М Посмотреть сообщение
синтаксис попроще у VBA.
Это субъективно, Вы привыкли к этому синтаксису и для Вас он проще. У меня был довольно долгий путь миграции от VBA к C# и накопилось достаточно много кода на vba и VB.NET, случаях, когда мне нужно поддерживать и править этот старый код, это вызывает стойкое нежелание в этом копошиться, что правлю через силу. Это так же субъективная реакция не имеющая отношения к перспективности ЯП для конструктора.
Цитата:
Сообщение от Владимир_М Посмотреть сообщение
А если результат одинаков, так в чем смысл?
Смысл в том, что помимо веревочек, у куклы есть еще и серводвигатели, а вот доступ к ним возможен только через .NET API
и один раз выучив С# у кукловода есть выбор чем пользоваться и как, а вот выучив VBA выбора нет.
В пример могу привести работу со SCAD, спасибо DEM он выложил обертки доступные из под .NET и появилась возможность прямо из автокада работать со скадом, увы в VBA такое не доступно.

Последний раз редактировалось Boxa, 10.02.2017 в 08:41. Причина: стилистические ошибки поправил
Boxa вне форума  
 
Непрочитано 10.02.2017, 08:24
#324
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


В VBA сильно куцый ООП - как только пытаешься написать, нечто больше пары функций, начинаешь грязно ругатся матом
Попробуй переписать на VBA - этот код

В .NET есть XAML

Последний раз редактировалось trir, 10.02.2017 в 08:43.
trir вне форума  
 
Непрочитано 10.02.2017, 09:51
| 1 #325
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 176


Цитата:
Сообщение от Владимир_М Посмотреть сообщение
А если результат одинаков, так в чем смысл?
Складывается чувство что Вы взрослый специалист, с огромным багажом программ и знаний в области VBA. Вам переходить не надо, нет профита, судя по видео Вы уже творите чудеса в автокаде с помощью VBA. Я и наверное остальные пытаются объяснить что надо изучать новичку! Тема то "Какой язык перспективен для инженера-конструктора" такой вопрос наверное задает новичок, и ему надо советовать то что хотя бы развивается в данный момент и в будущем дать максимальные возможности. У С# возможностей больше, я не могу объяснить каких, просто я не настолько крут как другие, но даже для меня это ФАКТ!
А для Вас с Вашим багажом знаний VBA конечно лучше, Вы его знаете от и до. И если я начну что то делать на С#, то Вы 100% обставите меня на VBA и по качеству и по времени разработки. Но не путайте новичков, признайте C# перспективнее!
veb86 вне форума  
 
Непрочитано 10.02.2017, 10:06
#326
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,006


VBA как лисп - кто-то вообще не смог осилить, кто-то пишет маленькие вспомогательные программки-макросы, кто-то достиг определенных высот и благодаря опыту и накопленным рабочим функциям/библиотекам может написать весьма продвинутые вещи. Но большинство требуемых функций в этих языках придется реализовывать самому, либо искать готовые и тестировать - насколько они подходят. В Net приходиться затратить больше времени на первоначальное "вхождение" в язык программирования - но потом с "удивлением" обнаружите, что многие вещи уже написаны до вас на уровне фреймворка Net. А чтобы допилить их под свои нужды - нужно написать всего десяток-другой строк, а не целые библиотеки в несколько сотен или тысяч строк. А сравнив скорость набора кода даже в бесплатных средах разработки под Net и в редакторе VBA - еще больше удивитесь.

Цитата:
Сообщение от trir Посмотреть сообщение
В .NET есть XAML
WPF, наверно? Ну для начинающих и старой технологии WinForms будет достаточно на первое время - сразу освоить и Net язык, и WPF для "не программистов" будет трудновато, имхо.
Сергей812 вне форума  
 
Непрочитано 10.02.2017, 10:53
#327
Владимир_М


 
Регистрация: 05.11.2015
Сообщений: 585


Цитата:
Сообщение от Владимир_М
И все-таки хочу повторить свою мысль. Важно определиться сначала с уровнем решаемых задач. Если речь именно о конструкторе, которому нужны всего лишь какие-то чертилки, параметризация каких-то конструкций, то может вполне хватить и VBA
Цитата:
Сообщение от Boxa Посмотреть сообщение
А Вам в который раз пытаются объяснить, что Ваша мысль не верна
Цитата:
Сообщение от Boxa Посмотреть сообщение
В пример могу привести работу со SCAD, спасибо DEM он выложил обертки доступные из под .NET и появилась возможность прямо из автокада работать со скадом, увы в VBA такое не доступно.
В одном сообщении моя мысль про уровень задач не верна, в следующем своем сообщении приводите практически мои же аргументы как правильные? Воха, Вы спорите ради спора? Вы не согласны сами с собой? Разве я где-то доказывал смогу работать со СКАДОМ посредством VBA? Внимательней надо быть такому программисту - я пока что предлагал посмотреть на чисто чертилки!

Далее объем и синтаксис.
Цитата:
Сообщение от Boxa Посмотреть сообщение
Объем кода одинаковый, отличие в одной строчке (20),
Это ничего не меняет.
При желании все то же самое можно уместить в 3 строчки:
Да не только с 20-ой!
Ну, если построчно не доходит, посчитайте по буковкам. (До какого только маразма не дойдешь, если человек не хочет согласиться с очевидным!)
Dim circleObj As AcadCircle
или
private AcadCircle circleObj = defgault(AcadCircle);
Ну, посмотрите просто по длине одной и той же по смыслу строки? Какая длинней? Видно? Или посчитать в буквах? Какая из строк понятней будет для конструктора начинающего программировать?
Цитата:
Сообщение от Boxa Посмотреть сообщение
Это субъективно, Вы привыкли к этому синтаксису и для Вас он проще.
В коде справа одних только скобок три разных вида! И точки с запятой понатыканы, без которых VBA обходится. И с этим будете спорить?!

Последний раз редактировалось Владимир_М, 10.02.2017 в 11:04.
Владимир_М вне форума  
 
Непрочитано 10.02.2017, 10:59
#328
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


VBA в принципе не перспективен
trir вне форума  
 
Непрочитано 10.02.2017, 11:10
#329
Владимир_М


 
Регистрация: 05.11.2015
Сообщений: 585


Цитата:
Сообщение от trir Посмотреть сообщение
В VBA сильно куцый ООП - как только пытаешься написать, нечто больше пары функций, начинаешь грязно ругатся матом
Это что является весомым аргументом? еще больше человек еще сильней ругается матом по поводу "высоколобых" языков. И дальше что?
Цитата:
Сообщение от trir Посмотреть сообщение
Попробуй переписать на VBA - этот код
Не то что перписывать не буду , но даже и смотреть ссылку не стану, поскольку и не утверждал, что смогу написать на VBA все, что только возможно на тех же языках высокого уровня.
Владимир_М вне форума  
 
Непрочитано 10.02.2017, 11:17
#330
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Цитата:
Сообщение от Владимир_М Посмотреть сообщение
чисто чертилки!
Вопрос про перспективность, выучив C# , конструктор, в перспективе, может взаимодействовать с расчетными программами и на основе данных расчета, выполнять автоматическую отрисовку элементов. В вба с этим сложно.

Цитата:
Сообщение от Владимир_М Посмотреть сообщение
Вы спорите ради спора?
Я не спорю с Вами и не пытаюсь затащить Вас на сторону С#, Я пытаюсь новичков отговорить от VBA, т.к. считаю, что у VBA нет перспективы и знаю, что С# на начальном этапе освоить не сложнее чем VBA.
Boxa вне форума  
 
Непрочитано 10.02.2017, 11:24
#331
Владимир_М


 
Регистрация: 05.11.2015
Сообщений: 585


Цитата:
Сообщение от veb86 Посмотреть сообщение
Вам переходить не надо, нет профита
Да почему не надо. Вот возникла задача по программированию под Ревит, ну и см. видео выше, там где целиком модель моста в 3д делается. И С# и WPF.
Цитата:
Сообщение от veb86 Посмотреть сообщение
такой вопрос наверное задает новичок, и ему надо советовать то что хотя бы развивается в данный момент и в будущем дать максимальные возможности.
а я только о том что хорошо бы сначала понять, а насколько ему нужны будут и когда эти максимальные возможности! и кто не даст ему в случай чего перейти на эти возможности в свое время
Цитата:
Сообщение от veb86 Посмотреть сообщение
У С# возможностей больше, я не могу объяснить каких, просто я не настолько крут как другие, но даже для меня это ФАКТ!
И для меня ФАКТ!
Цитата:
Сообщение от veb86 Посмотреть сообщение
Но не путайте новичков, признайте C# перспективнее!
никого не путаю абсолютно. ПРИЗНАЮ что С# перспективней. Но есть еще такие выражения в обиходе на этом же форуме про микроскоп и гвозди, или в народе про стрельбу из пушки по воробьям. Определите дичь сначала, на которую охотиться собираетесь, и выбирайте тогда уж соотвествующее оружие.
Владимир_М вне форума  
 
Непрочитано 10.02.2017, 11:26
#332
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 176


Цитата:
Сообщение от Boxa Посмотреть сообщение
С# на начальном этапе освоить не сложнее чем VBA.
Полностью согласен.
Сужу по себе, больше всего время трачу не на синтаксис(написание лишних 20 символов, ну и пускай 5 строчек), а на поиск оптимальных решений, на математику, на геометрию и т.д.
После нескольких сот строчек кода синтаксис становится понятным и логичным. Опять же так отличная среда разработки, ускоряет разработку в разы.
veb86 вне форума  
 
Непрочитано 10.02.2017, 11:28
#333
100k

Жалкий инженеришка-проектаст
 
Регистрация: 31.01.2010
Сообщений: 1,986


Иногда использую VBA в экселе. Функцию какую-то добавить и тд. В эти "волшебные мгновения" нецензурно ругаюсь.
В принципе, логарифмической линейкой и бухгалтерским калькулятором тоже можно пользоваться, особенно людям не молодым, как я и которые к этому привыкли. Которые к этому не привыкли лучше не надо.
100k вне форума  
 
Непрочитано 10.02.2017, 11:29
#334
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,006


Цитата:
Сообщение от Владимир_М Посмотреть сообщение
которому нужны всего лишь какие-то чертилки, параметризация каких-то конструкций
Просто чертилки уже давно не актуальны, нужны инструменты - обеспечивающие доступ к дополнительной справочной информации и позволяющие воздействовать на элементы чертежей с учетом этой информации. Чтобы не приходилось самому проектировщику переключать постоянно внимание и приложения для доступа к этой информации. VBA имеет очень куцые возможности хранения и обработки информации по сравнению с тем же Net.

Цитата:
Сообщение от Владимир_М Посмотреть сообщение
Dim circleObj As AcadCircle
или
private AcadCircle circleObj = defgault(AcadCircle);
Ну, посмотрите просто по длине одной и той же по смыслу строки? Какая длинней? Видно? Или посчитать в буквах? Какая из строк понятней будет для конструктора начинающего программировать?
лукавите - сравнивая объявления приватной переменной на уровне модуля/класса и локальной переменной:
Код:
[Выделить все]
Dim circleObj As AcadCircle
AcadCircle circleObj
и
Код:
[Выделить все]
Private circleObj As AcadCircle
private AcadCircle circleObj
вот корректно будет сравнивать по длине

Цитата:
Сообщение от Владимир_М Посмотреть сообщение
В коде справа одних только скобок три разных вида!
{} - начало и конец программного блока
() - начало и конец записи аргументов
[] - массив/индексация
если подобное для человека составляет непреодолимое затруднение - то что ему вообще с такими "способностями" в программировании делать?
Сергей812 вне форума  
 
Непрочитано 10.02.2017, 11:30
#335
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Цитата:
Сообщение от Владимир_М Посмотреть сообщение
В коде справа одних только скобок три разных вида! И точки с запятой понатыканы, без которых VBA обходится. И с этим будете спорить?!
Скобочки... Это сделано для того, что бы писать меньше буковок.
Сравните конструкции
if(a>b){} и If a> b then End IF
Когда на экране много буковок, глаз замыливается и основного кода уже не видно.
А по поводу точки с запятой, то такая форма позволят удобно форматировать код и работать с многострочным текстом удобнее, не более того.

Последний раз редактировалось Boxa, 10.02.2017 в 11:36.
Boxa вне форума  
 
Непрочитано 10.02.2017, 11:31
#336
Владимир_М


 
Регистрация: 05.11.2015
Сообщений: 585


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Но большинство требуемых функций в этих языках придется реализовывать самому, либо искать готовые и тестировать - насколько они подходят. В Net приходиться затратить больше времени на первоначальное "вхождение" в язык программирования - но потом с "удивлением" обнаружите, что многие вещи уже написаны до вас на уровне фреймворка Net.
Вот нормальные понятные аргументы в пользу NET. Согласен. Но в тысячный раз объясняю. Для рисования Circle в акаде, что там такого замечательного я найду на уровне фреймворка Net.
Владимир_М вне форума  
 
Непрочитано 10.02.2017, 11:34
#337
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


Цитата:
Для рисования Circle в акаде, что там такого замечательного я найду на уровне фреймворка Net.
транзакции
trir вне форума  
 
Непрочитано 10.02.2017, 11:47
#338
Владимир_М


 
Регистрация: 05.11.2015
Сообщений: 585


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
лукавите - сравнивая объявления приватной переменной на уровне модуля/класса и локальной переменной
ну вот еще и в лукавстве обвинили. Капец! Эти два строчки привел Воха в своих картинках! Только они у него стояли далеко друг от друга и ему так было непонятно о чем я говорю, и я их только разместил одну под другой для наглядности.

----- добавлено через ~2 мин. -----
Цитата:
Сообщение от veb86 Посмотреть сообщение
Опять же так отличная среда разработки
тоже согласен - хороший аргумент
Владимир_М вне форума  
 
Непрочитано 10.02.2017, 11:52
#339
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Цитата:
Сообщение от Владимир_М Посмотреть сообщение
ну вот еще и в лукавстве обвинили. Капец!
Действительно лукавите или не понимаете о чем пишите.
Хотите наглядный пример краткости в С#, у меня есть.
Вот реализация задачи из этой темы, в VBA стиле и в .NET
использованы только встроенные классы
Код:
[Выделить все]
 // VBA style
Dim dP(0 To 2) As Double
dP(0) = line.EndPoint.X - line.StartPoint.X
dP(1) = line.EndPoint.Y - line.StartPoint.Y
dP(2) = line.EndPoint.Z - line.StartPoint.Z

Dim length_dP As Double
length_dP = (dPX * dPX + dPY * dPY + dPZ * dPZ)^0.5
               
Dim L(0 To 2) As Double
L(0) = 1.5 * (dP(0) / length_dP)
L(1) = 1.5 * (dP(1) / length_dP)
L(2) = 1.5 * (dP(2) / length_dP)
               
Dim p1(0 To 2) As Double
Dim p2(0 To 2) As Double
p1(0) = line.StartPoint.X - L(0)
p1(1) = line.StartPoint.Y - L(1)
p1(2) = line.StartPoint.Z - L(2)

p2(0) = line.EndPoint.X + L(0)
p2(1) = line.EndPoint.Y + L(1)
p2(2) = line.EndPoint.Z + L(2)



//.NET
                Vector3d dP = line.EndPoint - line.StartPoint;
                Vector3d l = 1.5 * (dP / dP.Length);
                Point3d P1 = line.StartPoint + l;
                Point3d p2 = line.EndPoint + l;

Последний раз редактировалось Boxa, 10.02.2017 в 12:22. Причина: VBA код привел в рабочее состояние
Boxa вне форума  
 
Непрочитано 10.02.2017, 11:59
#340
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Цитата:
Сообщение от Boxa Посмотреть сообщение
Скобочки... Это сделано для того, что бы писать меньше буковок.
Хе-хе... Вот все эти скобочки (то фигурные, то простые), точечки, "точечки с запяточечкой" и прочие элементы синтаксиса почему-то пугают. Кого-то и Лисп скобочки пугают. Но это же самое простое, то, к чему привыкает человек через пару дней. Как первоклассники мгновенно привыкают ходить в школу сами после детсада.

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

Что касается VBA, то надо помнить, что это Visual Basic for Application. Не такой уж "Visual", но только для приложений, т.е. внутри ограниченного круга программ. Посвятив ему "всю жизнь" можно оказаться у разбитого корыта. Самостоятельных программ, даже вычисляющих одну формулу, в нем не сделать.

Если кто-то делает много наработок под MS Office - тому и деваться некуда, только VBA. Но уже для AutoCAD имеется богатый выбор. Работая в нем с .NET человек получает опыт, который использует и для самостоятельных программ. А жизнь впереди длинная и надо думать именно о перспективе.
ShaggyDoc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Какой язык перспективен для инженера-конструктора с условием

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск