Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Активные темы » Самый перспективный язык программирования

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

Открыть новую тему     Написать ответ в эту тему

Самый перспективный язык программирования
 ОтветГолосаПроценты
Java60
10.56%
C#108
19.01%
Asp.net2
0.35%
C++212
37.32%
Visual Basic.net19
3.35%
Delphi96
16.90%
что то другое71
12.50%
Гости не могут голосовать, зарегистрируйтесть!Всего Голосов: 568
XDiaBLo



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
zeroandruxa
А Жаба типа хуже чем C#.NET? Ну это вы загнули, по-моему они вполне даже альтернативы, и пока трудно сказать что лучше...

Всего записей: 244 | Зарегистр. 13-05-2004 | Отправлено: 15:04 28-12-2006
Qraizer



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Я считаю что С# - язык, который в будущем вытеснит С++ так как является обобщением нескольких языков  
Скорее не так. Microsoft (в очередной раз) предложила международный стандарт (на этот раз) API. Со своей стороны (и в качестве примера) она реализовала его в виде надстройки над WinAPI под названием .NET Application Framework. Если это дело выгорит, то получится типа "очень классно": можно писать код и не думать, под какую платформу. Просто компилишь, и оно работает. Везде. Подобная стандартизация уже прошла на ура с Plug-n-Play-ем, COM-технология тоже кое-кому понравилась. В общем ИМХО намерения именно такие.
Другое дело, что новый API не функциональный, а объектный - вот это самое то, "чего так долго все ждали". Действительно, сколько можно работать в терминах функций, структур, указателей, когда на дворе уже 21-й век, и все вовсю юзают ООП, в частности, лобают классовые обёртки над этим функциональным API. В лице всяких там MFC, VCL, etc. Так пусть API сразу будет объектный.
Далее. Над C++ всегда довлели два незыблемых закона: совместимость на уровне исходных текстов с plain C и т.н. "нулевая стоимость неиспользования". Если кто не знает, поясню. Это означает, что программист не платит за возможности языка, которые не использует. Например, если он заюзал полиморфизм, он платит за это некоторым снижением производительности за счёт замены прямых вызовов (виртуальных) методов на косвенные и как следствие этого - практической невозможностью их встраивать, которые иначе легко бы встраивались, даже без подсказок inline в прототипах. Кроме того, он платит увеличением размера полиморфных классов и чуть ли не втрое увеличением размера указателей на виртуальные методы. Однако, такие возможности стОят того, и программист, используя их, сознательно идёт на эти жертвы. Если программист использует исключения, то он тоже соглашается с тем, что программа будет работать чуть медленнее (правда, исчезающе мало, по крайнем мере на x86) при обычном исполнении и гораздо сильнее при собственно возникшем исключении, однако сохранение инвариантов, обеспечиваемое деструкторами, каковые гарантировано будут вызваны для всех объектов, которые при этом выходят из области видимости - это стОит того, тем более, что без исключений достижение того же эффекта потребовало бы от программиста значительных усилий, и не факт, что получится эффективнее. Можно продолжать, но суть, думаю, ясна: если я не использую динамический полиморфизм (есть ещё статический), то мои классы никогда не будут увеличены никаким vptr и все методы (кроме как вызываемые через указатели) будут вызываться прямо и при возможности встраиваться; если я не использую в своей программе исключения, то даже этой исчезающе малой потери производительности не будет в принципе. И т.п. Это второе правило, во-первых, позволяет и дальше рассматривать C++ как подходящий для решения задач, для которых традиционно использовались plain C и ассемблер - ведь он остаётся качественно прогнозируемым в плане стоимости тех или иных конструктивных решений, воплощаемых в коде, - во-вторых, препятствует стандартизации (но не внесению в каких-нибудь конкретных реализациях в виде расширения) в язык возможностей, которые невозможно или крайне сложно реализовать в соответствии с принципом нулевой стоимости - например того же сборщика мустора, - в-третьих, заставляет немалое количество пунктов стандарта переводить в разряд "зависящих от реализации" или "неопределённого поведения", т.к. разные платформы могут иметь те или иные особенности - например, если имеется аппаратная поддержка проверки диапазонов и (анти)переполнений при арифметических вычислениях, то реализация такой проверки будет дёшева, в противном случае, такая проверка возможна только программная, и следовательно стандартизировать обязательность такой проверки нельзя.
Микрософт же, с одной стороны имеет чёткое представление, какой она видит .NET, и следовательно способна точно сказать, что такие-то и такие-то возможности C++ не помешали бы, но они никогда в нём не появятся, зато другие его возможности для .NET не нужны или легко заменяются на другие, а в таком виде, как они реализованы в C++ они будут неэффективы для .NET. Вот потому-то она и замутила новый язык, который по её мнению лучше всего отражает потребности .NET.
 
P.S. Что касается политики Микрософт, это всё моё ИМХО, понятное дело, а отнюдь не официальная точка зрения кого бы то ни было.

Всего записей: 613 | Зарегистр. 08-08-2006 | Отправлено: 16:48 28-12-2006
Quark Fusion



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Язык программирования D http://digitalmars.com/d/
Кто знаком — что скажите?

Всего записей: 146 | Зарегистр. 21-12-2006 | Отправлено: 09:45 29-12-2006
oan42



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Познакомился с D по Вашей ссылке.
Правильная попытка сделать C+++, стряхнув узы совместимости с некоторой замшелостью С, C++.
 
Жаль, не стали рубить полностью сук.  
 
1)Как была  обратная польская запись, так и оставили в D.
2)Отказались от Namespaces, перешли к концепции  импорта модулей, однако
деление модуля на секции (интерфейсная, реализации, инициализации, финализации,
как в Delphi) так и не сделали.

Всего записей: 488 | Зарегистр. 03-08-2004 | Отправлено: 11:49 29-12-2006
Quark Fusion



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
обратная польская запись
простите за глупый вопрос, но что это?

Цитата:
деление модуля на секции  

инициализация и финализация — это же конструктор и деструктор, разве нет? а можно ссылочку на теоритические материалы по вопросу «деление модуля на секции»?

Всего записей: 146 | Зарегистр. 21-12-2006 | Отправлено: 12:30 29-12-2006
QuarkFusion

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
кстати основной плюс D — это совместимость с модулями C, можно к программе на D прилинковать модули, написанные на С (но не на С++)

Всего записей: 11 | Зарегистр. 03-03-2006 | Отправлено: 12:32 29-12-2006
XDiaBLo



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
oan42
Меня интересует один вопрос. Никаких наездов и ничего личного, просто хочу узнать мнение. Дельфи тупиковая ветка развития, почему многие пишут на Дельфи? Почему? Там же кроме Борланда никто не развивает это направление. Я правда и сам пишу в основном в C++ Builder'e, среда та же, язык другой. Но я пишу в нём только потому-что есть наследие от предыдущего программиста. Есть в планах переписать программы на Яву. Чем и займусь в ближайшие полгода. Можно было бы и на Visual С++ сделать, или C#, но это не суть, главное не застревать в борландовском болоте... Хмм, как вариант можно было бы кроссплатформенный компилятор С++ взять, с кросплатформенной же графической библиотечкой... Но дельфи... Поражаюсь такой популярности...

Всего записей: 244 | Зарегистр. 13-05-2004 | Отправлено: 12:35 29-12-2006
Quark Fusion



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
когда-то давным-давно Microsoft и Borland заключили соглашение, по которому первая стала развивать язык бейсик, а вторая паскаль — дельфи наверное стала популярной потому, что паскаль изучали в школе, кроме того производительность у дельфи хорошая

Всего записей: 146 | Зарегистр. 21-12-2006 | Отправлено: 12:52 29-12-2006
XDiaBLo



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Quark Fusion
Я считаю нельзя учить на учебном языке, так как многие потом на нём и остаются. Вот нельзя ведь научить ездить на велосипеде, человека, которому предстоит ездить на машине, нужно сразу учить на машине.

Всего записей: 244 | Зарегистр. 13-05-2004 | Отправлено: 13:08 29-12-2006
oan42



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
QuarkFusion
Язык Си далек от форта в части обратной польской записи,
но и в нем определение типа переменных идет в обратном порядке,
вначале тип, потом имена переменных.
 
То же и в языке D:
   int count, i; //Обратная польская запись
 
Желательно было сделать так:
 
  count, i: int;  
 
деление модуля на секции
http://program.rin.ru/razdel/html/306.html
 
XDiaBLo
Не люблю агитировать за Delphi
 
1) В давние времена была договоренность между Borland и MS по вопросу раздела
рынка pascal и basic, отсюда отсутствие серьезных конкурентов в данных нишах.
2) Lazarus эмулирует Delphi на основе кроссплатформенного Free Pascal.
3) Откуда уверенность, что Дельфи тупиковая ветка развития?

Всего записей: 488 | Зарегистр. 03-08-2004 | Отправлено: 13:32 29-12-2006
RedPromo



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мне кажется Delphi однозначно не будет тупиковой веткой.
И поражатся популярности Delphi не стоит, она того заслужила, я думаю причины этого уже все давно изветстны.
То что сейчас моногие переходят на с Delphi на С#, конечно ослабило позицию Borland но ни в коем случае не убило. Тем более это поспособствует новому поиску оригинальных удобных решений чтобы продукт был интересным на фоне продуктов от MS.

Всего записей: 558 | Зарегистр. 05-04-2006 | Отправлено: 13:48 29-12-2006 | Исправлено: RedPromo, 13:50 29-12-2006
XDiaBLo



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
oan42
Ну как, взяли язык созданный в учебных целях, и давай его использовать для написания серьёзных приложений? Ну не маразм ли? Ну ладно, допустим если и не тупиковая, но если мне даже C++Builder кажется тупиком, я считаю есть решения и получше, например C++/QT, Java, C#...

Всего записей: 244 | Зарегистр. 13-05-2004 | Отправлено: 13:53 29-12-2006
NoAngel777



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
C++ был, есть и будет
=> +1

Всего записей: 2561 | Зарегистр. 04-04-2006 | Отправлено: 13:53 29-12-2006
Quark Fusion



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Я считаю нельзя учить на учебном языке, так как многие потом на нём и остаются.

учат самому программированию, к тому языки эти вовсе не учебные
мне к примеру не велика разница на чём программировать, лишь бы библиотеки были и язык не сильно кривой
 

Цитата:
int count, i; //Обратная польская запись  

ой, да без разницы как писать мне например нравится как в бейсике «dim i as Integer» — просто и ясно, «оперделить i как целое»  
 
Добавлено:

Цитата:
деление модуля на секции  
http://program.rin.ru/razdel/html/306.html  

это всё условности, в D тоже можно так программировать
Код:
module c.stdio;    // this is module stdio in the c package
 
import std.stdio;  // import module stdio from the std package
import foo, bar;   // import modules foo and bar
 
void main()
{
    writefln("hello!\n");  // calls std.stdio.writefln
}
 
вот тут есть имя модуля и использование других модулей, а вот отдельно расписывать доступные классы модуля или методы класса — это только лишняя работа, с нею отлично справляется программа автоматической документации, а что доступно для внешних модулей или классов определяется на месте
 

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

то есть, если мне надо изменить параметры функции, то я должен их менять в двух местах? меня это всегда раздражает, кроме того компилятор иногда допускает различия в определениях, что приводит в последствии к непонятным глюкам в работе программы
а если я хочу видеть в коде в одном месте то, что доступно ивне, то я могу просто указать это в комментарии или заставить прогу это делать автоматически
 
Добавлено:
вообще я не понимаю как можно сваливать в одну кучу языки типа C++ и Java — последние используют для работы VM и производительность у них на порядок ниже, а требования к оперативной памяти — выше
C++, D, Delphi — компилируются в быстрый машинный код, а Java, C# и вся группа .NET — в виртуальный байт-код, а ASP.NET вообще вроде не язык программирования
 
кстати еще есть Visual Basic 6.0, который отличается от Visual Basic .NET

Всего записей: 146 | Зарегистр. 21-12-2006 | Отправлено: 13:55 29-12-2006 | Исправлено: Quark Fusion, 14:33 29-12-2006
oan42



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Quark Fusion
Язык нельзя рассматривать в отрыве от платформы разработки (IDE, компоненты,
либы, плагины, форумы,  книги  и т.п. ) и специфики приложения.
 
IMHO, основные  двигатели прогресса:
 - CodeGear Developer Studio.
 - Microsoft Visual Studio.

Всего записей: 488 | Зарегистр. 03-08-2004 | Отправлено: 14:31 29-12-2006
Quark Fusion



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Язык нельзя рассматривать в отрыве от платформы разработки  

почему? вот к примеру для С++ есть множество разных платформ, а для платформы .NET — множество разных языков программирования
 
Добавлено:

Цитата:
(IDE, компоненты,  
либы, плагины, форумы,  книги  и т.п. )

не являются языками программирования, а компоненты,  
либы, плагины можно вообще комбинировать на разных языках
одну и ту же IDE можно использовать в разных целях, возьмём к примеру Eclipse
если изучили C++ и Basic, то вам не составит труда освоить C# и Java

Всего записей: 146 | Зарегистр. 21-12-2006 | Отправлено: 14:31 29-12-2006 | Исправлено: Quark Fusion, 14:33 29-12-2006
oan42



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пардон, хотел сказать, перспективность языка нельзя рассматривать в отрыве от платформы разработки.

Всего записей: 488 | Зарегистр. 03-08-2004 | Отправлено: 14:47 29-12-2006 | Исправлено: oan42, 14:47 29-12-2006
Quark Fusion



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
это верно, язык без платформы не перспективен, но можно же в будущем прикрутить его к существующей платформе

Всего записей: 146 | Зарегистр. 21-12-2006 | Отправлено: 14:50 29-12-2006
oan42



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
компоненты, либы, плагины можно вообще комбинировать на разных языках
Да, я заметил, что компоненты, разработанные на языке Delphi, очень активно используются Строителями.

Всего записей: 488 | Зарегистр. 03-08-2004 | Отправлено: 14:52 29-12-2006
fat_lucky

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Язык нельзя рассматривать в отрыве от платформы разработки (IDE, компоненты,  
либы, плагины, форумы,  книги  и т.п. ) и специфики приложения.  

А язык java, PHP? Это ведь тоже языки программирования.

Всего записей: 72 | Зарегистр. 14-02-2003 | Отправлено: 14:02 04-01-2007
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Активные темы » Самый перспективный язык программирования


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru