|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Регистрация: 05.11.2009
Сообщений: 4,360
|
Цитата:
Языки программирования придумывают не для компиляторов и сред разработки, а компиляторы и среды разработки придумывают для языков. Разнообразие языков обусловлено лишь одним - каждый из них предпочтителен для решения узкого спектра задач. Для простых задач удобнее простые языки. С другой стороны эти простые задачи решаются и с помощью сложных языков типа С++, но вам нужно тратить гораздо больше усилий на изучение. Однако при этом С++ позволит делать и более сложные вещи. Лично я как-то после написания прогаммок с использовнием экселевских формул сразу перепрыгнул на С++. В один прекрасный момент я понял, что формулы экселя меня ограничивают в возможностях и решил отказаться от них. И вот сейчас, программируя на С++ уже лет 5 или больше, я понимаю, что я очень плохо знаю этот язык. Причины того, что я все еще не гуру - это не основной род деятельности, а скорее хобби, я изучал язык самостоятельно, бессистемно и с помощью среды разработки, которая упрощают саму разработку, но усложняет изучение языка (речь о С++ Builder 6). Но с другой стороны я ни разу не словил себя на мысли, что я что-то не могу сделать в принципе. Язык позволяет делать все что угодно. Хотя не стоит зацикливаться на функциональных возможностях. К этому стремятся все языки. Фишками С++ являются объектная ориентированность, инкапсуляция, наследование и полиморфизм. Эти его свойства дают следующие реальные преимущества: 1. Возможность поэтапной разработки программы, когда вы фокусируетесь исключительно на какой-то структурной части, которая сама по себе независима от остальных частей и взаимодействует с ними лишь через легко перерабатываемый интерфейс, а вся внутренняя работа этой структурной части скрыта. Когда программа большая - это очень здорово, потому что не нужно держать в памяти все нюансы работы программы, а фокусироваться на узкой задаче. Также упрощается разработка программы коллективом программистов. 2. Повторное использование кода. Однажды написанный код можно применить в другой программе. Причем не копипастом, а подключением соответствующего разработанного ранее модуля. Преимущество над копипастом в том, что если вы захотите что-то изменить в этом модуле - вам нужно будет изменить всего лишь в одном месте, а не во всех местах, куда вы этот код скопипастили. 3. Наследование. Допустим вам нужна программа, которая использует объекты, похожие на те, что вы делали ранее, но с немного другим поведением. Вы можете задействовать механизм наследования. При этом вам нужно ранее разработанный объект дополнить недостающими функциями, либо переопределить существующие. Это гораздо менее затратно по времени и гораздо более надежно, чем писать все с нуля, а потом заниматься отладкой. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
|
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Например, на "чистом" Паскале или C. Или даже на Turbo Pascal или на Turbo C. Ведь все необходимые "слова" в этих языках есть. Но этого мало, чтобы сделать программу. Нужна именно среда разработки. Причем "среда" - это не редактор кода, даже "вижуальный", а весь набор библиотек, классов и прочей обстановки. А они просто так не появляются. Цитата:
Вот, например Дмитрий Большаков свой EhDbGrid уже лет 15 делает и расширяет, и похоже больше ничем не занимается. А что уж говорить о таких наборах, как Developer Express. И даже бесплатные Jedi Code Library и Jedi VCL несколько десятков программистов уже много лет развивают. А в "новых языках" ничего необходимого нет. Хорошо еще, если код вообще компилируется, чтобы продемонстрировать "Hello World" Цитата:
|
|||
![]() |
|
||||
Регистрация: 05.11.2009
Сообщений: 4,360
|
Цитата:
Ситуация. Нашли удобную среду разработки, начали изучать, писать программки. Но в один прекрасный день разработчик объявил о прекращении поддержки своего продукта. Будете новую среду разработки изучать? Опять же - глупо. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
И поэтому тут предлагали выше переходить на всякое экзотические языки, видимо) Ну не верю я, что тот же майкрософт резко перестанет поддерживать свою студию.. может, пропадет бесплатный экспресс или станет стоить какие то символические несколько тысяч.. соответственно, время на переход будет всегда.. потому что в ней (студии) пишут не сотни и не тысячи людей, а гораздо больше.. а вот всякая экзотика - запросто..
|
|||
![]() |
|
||||
Соискатель Регистрация: 12.03.2011
Урал
Сообщений: 1,496
|
Нет - этот вариант вряд ли возможен, почитал уже о языке.
Закончу переводить в си++ программу из методички Fortran, хочу начать переводить в него же "Ferma_source_code_", что выкладывал ранее в dnl AlexCAD777, если он не будет против. Наверное долго буду. Там еще есть возможность добавить другие фермы. Если кто то тоже хочет, пишите, но сразу скажу, работаю бессистемно, могу неделями этим не заниматься, потом только этим. Поэтому тут каждый за себя пока, просто чтобы двойную работу не делать, каждый возьмет какую то свою часть. Хотя лучше нет. Пока сам. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
По нескольким последним постам о языках - ИХМО каждый автор говорит о своем - в итоге намешаны в кучу понятия реализации диалектов языков, среды, платформы и пр. Да на любом тюринг-полном языке решается любая решаемая задача (реализуется любой формальный алгоритм). Естественно любая практическая задача имеет свои ттх (под какой платформой(ми) она должна работать и пр.) - которое накладывает ограничения на выбор конкретных инструментов, у которых в свою очередь могут быть (но не обязательно) разные как среды программирования, так и библиотечный набор. Но тем не менее - разница в языках есть - и она достаточно существенна. В итоге, лично я не вижу ничего зазорного писать на том, что больше подходит (возможно) под конкретную задачу - а если есть возможность "скрестить ужа с ежом" - то под конкретную ее часть. По конкретному примеру (FreeIng ...) - здесь, тот самый момент, когда не надо пытаться насильно прикрутить какой-либо диалект, а выводить формальные требования и создавать свой DSL - по крайней мере я бы именно так и делал - а вот на чем его (DSL) писать - на этот вопрос возможно ответить - только поняв требования к будущему языку.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
|||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Цитата:
Цитата:
Цитата:
Но пользуются чаще всего неправильно. Часто, например, пытаются из Delphi-программ "рисовать" в Автокаде. Или на ObjectARX делать то, что гораздо проще (а главное надежнее) сделать на Lisp. Что касается предметно-ориентированных языков, то они очень специфичны. Безусловно они нужны, а некоторые очень популярны и важны. Но надо уметь их использовать. И иметь возможность "скреститься с ужом". Вот, например SQL -типичный предметно-ориентированный язык. И его можно очень эффективно использовать в прикладных программах для работы с базами данных. Сформировал сколь угодно хитрый запрос в виде строки, отправил в БД - получил результат. Обычным способом, типа перебора данных, делать это можно долго, писать много кода и иметь ненадежный результат. Кстати, несколько раз в этой теме советовал "зачиншикам" использовать БД. Но нет, всё новые языки ищут.... |
||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Старею я видимо - ShaggyDoc уже со мной во всем согласен...
Насчет сравнения автолиспа и SQL - я бы уточнил - в моем представлении "БД-шную" роль SQL в автокаде в большей степени имеет не столько автолисп сколько его условная часть работающая с DXF. Именно DXF является той базовой программно-независимой структурой на основе которой формализуется автокадовкий чертеж, а автолисп это просто средство наиболее подходящее для работы с этим форматом. Все эти COM .Net и ARX - это "надстройки" к этой структуре + из под них возможен доступ к различным АПИ автокада (фишкам) типо запроса строки вывода на экран итд. Я прекрасно понимаю, что сам автокад написан на C++, но тем не менее "во главе" лежит именно формат который он обеспечивает - DXF - его "бинарное" представление и инструменты работы с ним - вторичны (вторичны - не значит не важны). Это как HTML страница - как мы ее будет воспроизводить, на какой платформе и пр. - вопрос 10-ый, оно-же когда мы отсылаем SQL запрос серверу - нам по барабану - на чем он там "крутиться", на чем он написан и какое железо использует. Почему именно лисп - он благодаря своей структуре может очень хорошо описывать любой декларативный язык (формат) - тут кто-то Выше писал - что любую задачу он может реализовать на С++ - да реализовать, как я уже писал, действительно можно, а вот можно ли ее описать?? - нет т.к. Си подобные языки - императивные - они определяет только последовательность действий - да можно попробывать "нагородить" классов и говорить что это формальное описание - но оно таковым не будет - на лиспе можно запросто формализовать и web страницу и sql запрос и XML формат - и это будет "не притянутыми за уши", а именно точное описание "понятное" компьютеру и человеку.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Регистрация: 05.11.2009
Сообщений: 4,360
|
Дело не в конкретном компоненте, а в общей сути, которая заключается в том, что даже самая мощнейшая из ныне существующих средств разработки не удовлетворит потребности сколь-нибудь серьезного программиста без изучения языка, поскольку де-факто представляет собой только базовый функционал, которого может хватать лишь для простых задач. А простые задачи все равно на каком языке решать.
|
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Для "серьезных программистов" сами языки не являются никакой трудностью. И для "несерьезных" тоже. А вот особенности каждой среды разработки, её "инфраструктура" имеют огромное значение. Попробуйте, например, сходу, наизусть зная синтаксис C++, перескочить в MS Visual на QT или Borland C++. Или обратно. И еще большее значение имеет само искусство программирования. Тут знаний языка совершенно недостаточно. Выпускники "программистских" факультетов изучали не менее 10-15 "языков", но искусных программистов среди них 1-2 на выпуск. У нас в управлении ИТ всегда была проблема с Программистами. Каждый выпуск из университета изучали досконально - взять некого. Двух, самых лучших, нашли среди выпускников географического и астрономического факультетов. |
|||
![]() |
|
||||
Регистрация: 05.11.2009
Сообщений: 4,360
|
Я же не о синтаксисе (к слову синтаксис С++ довольно простой и ключевых слов не много), а о применении. Под "изучить язык" я понимаю эффективное его использование.
Для человека, знающего язык, думаю адаптация после смены среды разработки пройдет быстро и безболезненно. А вот если вы меняете среду разработки одного языка на среду разработки другого - трудностей будет на порядок больше. |
|||
![]() |
|
||||
Цитата:
![]() Потом будет обсуждение - что создавать, а уж потом и дойдёт и до первых программ. |
||||
![]() |
|
||||
Проектирование заборов уже в прошлом Регистрация: 29.10.2009
Рязань
Сообщений: 2,089
|
Говорил же - переходите на Python. Уже давно бы в одной секте команде писали бы 146й модуль расширения библиотеки для оболочки расчетных подпрограмм... правда для этого всего лишь надо было бы на 20-30 страницах выяснить, какую "ветку" использовать - 3.х или 2.х
|
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Есть ли бесплатный конвертор PDF в DWG (именно официальный и бесплатный) ? | star282 | Прочее. Программное обеспечение | 3 | 14.09.2012 11:44 |
Подскажите, пожалуйста, софт для проектирования | remenikomer | Прочее. Программное обеспечение | 7 | 02.08.2011 12:05 |
Софт по расчету зубчатых зацеплений. | Mageslay | Машиностроение | 4 | 12.02.2010 13:18 |
"Милый дом" 3D - дизайн интерьеров (бесплатный софт) | ETCartman | Прочее. Программное обеспечение | 9 | 13.10.2009 23:18 |
Подскажите - есть ли какойнибудь софт для расчета разверток. | Sunny | Расчетные программы | 1 | 14.08.2004 01:32 |