LINUX.ORG.RU

Как писать проще и эффективнее ?


0

0

Здесь на форуме часто выражалось мнение о том, что C++ в принципе малопригоден для создания программ (редкое применение узкой специфики языка, излишнее умничание на ровном месте или что-то еще...).

Подскажите, пожалуйста, в таком случае язык, который соответствовал следующим требованиям:

1. Кроссплатформенный язык; 2. Мощный, но достаточно простой в освоении ;-); 2. Полная поддержка GUI-интерфейсов (возможно использование чужих GUI-библиотек); 3. Полноценная работа с БД через единый интерфейс (ODBC и др.); 4. Возможность свободного использования макроподстановок (строка кода может быть интерпретирована как код). Программист из меня может быть плохой, но вот идеями меня Бог не обидел!

Поэтому хочется меньше тратить усилий на кодирование и больше - на реализацию замыслов.


Ответ на: комментарий от Valeriy_Onuchin

>2. Мощный, но достаточно простой в освоении ;-); C

Мощность = dРабота/dВремя. C усердно работает, пока многие другие курят в сторонке, давно закончив:-)

DonkeyHot ★★★★★
()
Ответ на: комментарий от seiken

>>Потому что вскоре M$ сделает его для Вындуза примерно тем же, чем является Це для Юникс систем.

>Драйверы тоже на C# будем писать?

И обязательно с GUI'ем. И веб-службами.

Begemoth ★★★★★
()
Ответ на: комментарий от Begemoth

>>>Потому что вскоре M$ сделает его для Вындуза примерно тем же, чем является Це для Юникс систем.

>>Драйверы тоже на C# будем писать?

>И обязательно с GUI'ем. И веб-службами.

Нет, написание драйверов несертифицированными персонами будет уголовно наказуемо.

Программирование под Вындуз, скорее всего, останется только в виде разработки интерфейсных приблуд под дотНетом.

Die-Hard ★★★★★
()
Ответ на: комментарий от Begemoth

> И чем же C# как язык лучше Java?

Мне он больше нравится.

Кроме того,

1. Виртуальная машина лучше

2. Жаба как платформа построена вокруг одного языка, а дотНет будет, вообще говоря, универсальной платформрй.

Die-Hard ★★★★★
()
Ответ на: комментарий от Die-Hard

>ЦеШарп по всем параметрам лучше Жабы.
Бред. На что я не люблю жабу но она объективно по всем пораметрам лучше поганого цешарп.

anonymous
()

> Поэтому хочется меньше тратить усилий на кодирование и больше - на реализацию замыслов.

А чем одно отличается от другого ?

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

Опыт показывает, что проблемы с "плохим языком программирования" у программистов часто эквиваленты проблемам с кривыми яйцами у танцоров! Очередная попытка найти проблему не в себе, а в окружающем мире.

Просто перед тем как давить на кнопки, надо думать и думать много.

ukez
()
Ответ на: комментарий от Die-Hard

>Нет, написание драйверов несертифицированными персонами будет уголовно наказуемо.

>Программирование под Вындуз, скорее всего, останется только в виде разработки интерфейсных приблуд под дотНетом.

Это из области околокомпьютерной фантастики.

seiken ★★★★★
()
Ответ на: комментарий от seiken

>Это из области околокомпьютерной фантастики.

Шутка, конечно.

Но, боюсь, не преувеличение не столь уж и велико... Увидим!

Die-Hard ★★★★★
()
Ответ на: комментарий от Die-Hard

>И, потом, ЦеШарп по всем параметрам лучше Жабы.

По всем двум? Или всем трем? По каким параметрам лучше? На сколько "проще и еффективнее"© писать на C#, чем на Java? На 10%? На 90%?

>Жаба как платформа построена вокруг одного языка, а дотНет будет, вообще говоря, универсальной платформрй.

Будит? Шыш с маслом тибе будит. Типа Микрософту позарез нужно распыляться на поддержку Python-a, Lisp-a, Haskell-a и прочего барахла помимо официального C# в своей VM. Ей просто индусов девать некуда, вот и посадит их вкллючать поддержку всех известных языков, ага. "Чтоб було..."

anonymous
()
Ответ на: комментарий от ukez

> Просто перед тем как давить на кнопки, надо думать и думать много.

Правильно. Но на низкоуровневых языках (таких как C/Pascal/C++/Java/C#) еще больше времени надо тратить на обдумывание реализации этой самой модели. Вопрос в объеме работы.

Begemoth ★★★★★
()
Ответ на: комментарий от Begemoth

> Правильно. Но на низкоуровневых языках (таких как C/Pascal/C++/Java/C#) еще больше времени надо тратить на обдумывание реализации этой самой модели. Вопрос в объеме работы.

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

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

ukez
()
Ответ на: комментарий от anonymous

anonymous (*) (09.05.2005 0:23:59)

>Будит? Шыш с маслом тибе будит. Типа Микрософту позарез нужно распыляться на поддержку Python-a, Lisp-a, Haskell-a и прочего барахла помимо официального C# в своей VM. Ей просто индусов девать некуда, вот и посадит их вкллючать поддержку всех известных языков, ага. "Чтоб було..."

А оно уже сейчас, типа, есть. Ты ВижуалСтудию дотнет видел?

Die-Hard ★★★★★
()
Ответ на: комментарий от Die-Hard

>А оно уже сейчас, типа, есть. Ты ВижуалСтудию дотнет видел?
В версии от 2002 года там были только C#, VB.NET и управляемый C++. Сейчас что-то изменилось?

seiken ★★★★★
()
Ответ на: комментарий от seiken

>>А оно уже сейчас, типа, есть. Ты ВижуалСтудию дотнет видел?

>В версии от 2002 года там были только C#, VB.NET и управляемый C++. Сейчас что-то изменилось?

Еще J#

Но не надо забывать, что туда понапихано интегрированной поддержки всего на свете. Плюс средства разработки ВЕБ приложений (ASP.NET, всякие штуки для XML), кросскомпиляция для мобильных устройств.

Как я понимаю, пока это только начало.

Die-Hard ★★★★★
()
Ответ на: комментарий от Die-Hard

Печяльно, но факт :( мекросовт никогда не заботился ни о технических преимуществах, ни об удобстве пользователя, только о продаваемости своего шайза :( Так же случилось и с .нетом. Там конешно много всего напихано, и _выглядит_ если не принюхиваться превосходно. Есть в С#, как в языке фичи прикольные, и в чём-то полезные. Однако, платформа - тормозное глякавое чюдовище, интерес к которому поддерживается только пиар-средствами. И останется таковой, бо от мекросовта никто ништо другого невидывал. И будут использовать, будут плеваться и ругаться чёрными словами, но схавают :(

bugmaker ★★★★☆
()
Ответ на: комментарий от ukez

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

Begemoth ★★★★★
()
Ответ на: комментарий от bugmaker

> bugmaker

> мекросовт никогда не заботился ни о технических преимуществах, ни об удобстве пользователя

Так было несколько лет назад. Ситуация потихоньку выправляется, и теперь Вындуз уже вполне юзабелен, хотя, конечно, происходит этот процесс отнюдь не благодаря альтруизму M$.

>Однако, платформа - тормозное глякавое чюдовище, интерес к которому поддерживается только пиар-средствами.

Это, скорее, про Жабу. ДотНет же уже сейчас не тормознее будет, и вполне юзабелен. Конечно, пока что с трудом, но до выхода Длиннорога никто и не обещал комфортности. Конечно, тормознуто, но взгляни на системные требования, предъявляемые к Длиннорогу.

>И будут использовать, будут плеваться и ругаться чёрными словами, но схавают :(

Согасен со всеми пунктами!

Поэтому мне и кажется, что за Дотнетом будущее:)

Die-Hard ★★★★★
()
Ответ на: комментарий от Valeriy_Onuchin

Ну, пробовал
Ещё более сыро, чем дотНЕТ
Насчёт будущего дотНЕТа - не слишком ли оптимистично?

Fedor ★★★
()
Ответ на: комментарий от Valeriy_Onuchin

2Valeriy_Onuchin:

> кто-нибудь пробовал MONO

Назови мне хоть один проект де Иказы, про который можно сказать что он "работает"? Неужели же MONO будет исключением?

Когда проблемы на уровне ДНК, вряд ли можно на что-либо надеяться...

Die-Hard ★★★★★
()
Ответ на: комментарий от kosmonavt

да ладно. в Питере в некоторых вузах до сих пор квикбэйсик преподают

anonymous
()
Ответ на: комментарий от Valeriy_Onuchin

2Valeriy_Onuchin :

> ++ http://primates.ximian.com/~miguel/

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

Ну да, после некоторого опыта работы даже Гномом можно пользоваться (если твердо усвоить, на что нельзя нажимать, чтобы он грохнулся). Просто у разных людей разные понятия о том, что называется "стабильный".

ЗЫ.

Помнится, приятель мне с восторгом описывал свои ощущения от ROOTа: "Прикинь, он 5 минут кору пишет!" Правда, дело в 99 году было. Да. Это был комментарий, данный после блестящего доклада Рене, где он убедительно доказывал коммъюнити необходимость скорейшего перехода на суперправильного Рута.

ЗЗЫ.

Последний раз наблюдал Рута несколько лет назад.

Die-Hard ★★★★★
()
Ответ на: комментарий от Begemoth

> Вообще, хорошо продуманная, грамотно декомпозированная задача относительно легко решается на языке ассемблера.

Речь идет именно о языках тертьего поколения (3GL), обладающих развитыми средствами описания структур данных и алгортмов.

Я говорю о том, что грань разделяющая выскокуровневые и низкоуровневые языки в этом семействе пренебрежима мала. Да - где то есть свои фишки, у лиспа - макро и однообразная структура, у ML-based - алгебраическая система типов, у Perl, Python, Ruby - интерпертируемость, метопрограммные фишки + reflection (сюда же lisp), почти везде есть сборщик мусора, но для большиснства типовых задач, имхо, эти особенности идут лесом. Тут как и 10, 15 лет назад все упирается в струкуры данных + алгоритмы.

Согласен, что на многих задачах новомдные языки демонстрируют неплохие результаты, в силу специальной закошенности под решения таких задач, но списывать со счетов более универсальных монстров вроде Cи++, Паскаля и Яву пока еще совсем рано.

ukez
()
Ответ на: комментарий от ukez

Согласен с предыдущим оратором.
Хотелось бы отметить, что ребята "с мелкими и мягкими"
как всегда "впереди планеты всей". То, что для них было реальностью 10-15 лет назад, постепенно становится действитильностью наших дней для "длинных и твердых"
linuxoidов и пр.
Я имею ввиду COM-технологию (улучешнный C++), которая есть
"full run time type identification", aka reflection , aka
"метопрограммные фишки", aka "интерпертируемость".

Жаба пeрепрыгнула это барьер недавно ...
да и ROOT (дге я работаю) повотряет тоже самое.

Наконец-то волна дакaтилась до C++00x comittee.
Тут у нас рэбята крапают предложение для внесения
Reflection into C++ standart.
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1751.html#PUMABIB

Рекомендую также посмотреть C++-wishlist:
http://lafstern.org/matt/wishlist.html









Valeriy_Onuchin ★★
()
Ответ на: комментарий от Valeriy_Onuchin

ukez (09.05.2005 23:27:47):

> Согласен, что на многих задачах новомдные языки демонстрируют неплохие результаты, в силу специальной закошенности под решения таких задач, но списывать со счетов более универсальных монстров вроде Cи++, Паскаля и Яву пока еще совсем рано.

Согласен в принципе, но один комментарий:

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

То был период веры в Крутой Язык, Который Решит Все Проблемы.

Потом стало ясно, что панацеи нет.

Потом была вера в Структурное Программмирование. Некоторое время люди верили, что вскоре программистов вообще не будет. Программы будут писать программы.

Потом, вроде, все встало на круги своя -- и тут появилась M$.

Весь пар немедленно ушел в свисток.

Про структурное программирование все забыли, домохозяйки и индусы кодируют на VStudio параллельные алгоритмы, кстати подоспело и ширится движение Честных Манагеров, Которых Обижают Злобные Юзеры, научившиеся нажатием на кнопку копировать их раскрученный сидюк -- все идет к законодательному регулированию разрешенных видов программирования. Теорию все забыли и начинают переосмысливать заново.

Разумеется, многое из пройденного вновь всплывает...

Die-Hard ★★★★★
()
Ответ на: комментарий от Valeriy_Onuchin

2Valeriy_Onuchin:

> Хотелось бы отметить, что ребята "с мелкими и мягкими" как всегда "впереди планеты всей". То, что для них было реальностью 10-15 лет назад, постепенно становится действитильностью наших дней для "длинных и твердых" linuxoidов и пр.

Да уж...

> Я имею ввиду COM-технологию (улучешнный C++), которая есть "full run time type identification", aka reflection , aka "метопрограммные фишки", aka "интерпертируемость".

Я понимаю, что Интернет был придуман Большим Биллом. Просто я не догадывался, что RPC тоже он придумал...

А CORBA, наверное, тоже выросла из COM-технологии?

Die-Hard ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.