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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Qraizer



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

Цитата:
... и что значит «сделаете»? по скорости выполнения?
Ну да. Мне компилятор в процессе компиляции сам будет "строить" наиболее эффективный цикл независимо от сложности выражения. D так умеет? Или ассемблер? Впрочем, на ассемблере можно самомодифицирующийся код навернуть, но по сложности патчить исполняемый код никак не конкурент шаблонному метапрограммированию.

Всего записей: 613 | Зарегистр. 08-08-2006 | Отправлено: 20:19 10-01-2007 | Исправлено: Qraizer, 20:23 10-01-2007
Quark Fusion



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
с точки зрения компилятора цикл будет наиболее эффективен
А вообщее в D один из самых лучших компиляторов, автор языка как раз их разработкой и занимается, причём уже довольно давно.

 
Добавлено:
Кстати сам язык разрабатывается еще и с точки зрения возможности оптимизации компилятором, поэтому там оптимизируется почти что всё, что можно оптимизировать
Но алгортим программы он за вас, конечно же, кардинально не перепишет — если есть другой, более эффективный способ решить задачу, то лучше воспользоваться им, а компилятор уже позаботиться, чтобы этот код хорошо работал.

Всего записей: 146 | Зарегистр. 21-12-2006 | Отправлено: 07:23 11-01-2007
XDiaBLo



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

Всего записей: 244 | Зарегистр. 13-05-2004 | Отправлено: 08:11 11-01-2007
Quark Fusion



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
я же линк на них вешаю — незаметно, чтоли? там всё расписано и даже исходные коды программ есть.
 
Добавлено:
или надо внизу подписывать «щёлкните на картинку для получения подробностей»?

Всего записей: 146 | Зарегистр. 21-12-2006 | Отправлено: 09:46 11-01-2007
XDiaBLo



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Quark Fusion
А я те чё, картинки щупаю чтоль??? Тыб сцылку снизу указал, и то бы заметнее было!!!

Всего записей: 244 | Зарегистр. 13-05-2004 | Отправлено: 14:34 11-01-2007
Quark Fusion



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
XDiaBLo, мог бы хотя бы для приличия попробовать или посмотреть откуда картинка грузится, прежде чем говорить о «тупых» графиках… а еще полезно поискать в сети сравнения и понять разницу между bytecode и native, прежде чем утверждать, что Java такая быстрая, просто «медленно запрягает».

Всего записей: 146 | Зарегистр. 21-12-2006 | Отправлено: 15:01 11-01-2007
oan42



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Аналитика: Рынок средств разработки в 2006 году
http://www.interface.ru/home.asp?artId=3149

Всего записей: 488 | Зарегистр. 03-08-2004 | Отправлено: 15:01 11-01-2007
XDiaBLo



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Quark Fusion
Я знаю разницу между байткодом и родным кодом. А на C++ я бы всё равно не стал приложения связанные с бизнес-логикой писать. А то что Ява быстрей чем ПХП я уже проверял. Руби говорят вообще тормоз...

Всего записей: 244 | Зарегистр. 13-05-2004 | Отправлено: 15:39 11-01-2007
Quark Fusion



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
статья в основном о рынке, средах разработки и платформах, а не о языках программирования, технологии упоминаются лишь вскользь
для примера под Visual Studio можно программировать на разных языках, даже на PHP, тоже можно сказать и о Eclipse
 
в статье больше всего понравилась фраза «сделали AJAX достоянием гласности» — а раньше кто мешал его изобрести и использовать? технологии уже были, просто у веб-программистов было недостаточно навыков.
 
Добавлено:

Цитата:
А то что Ява быстрей чем ПХП я уже проверял.

PHP вроде вообще скриптовый язык — естественно, что он медленне, тут даже проверять нечего. И это не делает яву быстрее компилируемых языков. Или вы считаете что PHP и С++ языки из одной категории?

Всего записей: 146 | Зарегистр. 21-12-2006 | Отправлено: 15:43 11-01-2007 | Исправлено: Quark Fusion, 15:47 11-01-2007
Qraizer



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

Цитата:
Но алгортим программы он за вас, конечно же, кардинально не перепишет — если есть другой, более эффективный способ решить задачу, то лучше воспользоваться им, а компилятор уже позаботиться, чтобы этот код хорошо работал.
А кардинально и не надо. Достаточно объяснить компилятору, как должен выглядеть оптимальный цикл, т.е. снабдить его способом построения такого цикла для произвольного выражения. Это и будет метаалгоритмом. Когда он его выполнит при компиляции, т.е. наинстанцирует шаблонов, дальше начнётся обычная оптимизация.
Плюсовые шаблоны обладают качеством алгоритмической полноты. Это означает, что теоретически на этапе компиляции можно выполнить любой алгоритм. Мало кто это осознаёт. Поэтому когда я слышу, что кто-то говорит, будто бы он профессионал в плюсах, но "не любит" (термины могут отличаться) шаблоны, так и хочется заметить, что этот товарищ не знают плюсов, а знает C с объектами.
 
P.S. Кстати, первая в мире метапрограмма искала простые числа. Её даже не надо было запускать, только откомпилировать, т.к. найденные простые числа выводились в виде ошибок компиляции, в формулировках которых они присутствовали. Что-то типа
Код:
error: incomplete type is not allowed: prime<2> x;
error: incomplete type is not allowed: prime<3> x;
error: incomplete type is not allowed: prime<5> x;
...

Всего записей: 613 | Зарегистр. 08-08-2006 | Отправлено: 16:22 11-01-2007 | Исправлено: Qraizer, 16:25 11-01-2007
Quark Fusion



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

Цитата:
т.е. снабдить его способом построения такого цикла для произвольного выражения
одно дело оптимизировать выражения, и совсем другое — алгоритмы, к тому же, если вы в выражении вызываете кучу функций почём зря, то компилятор не сможет это определить и ваше выражение будет выполняться на порядок медленнее, чем могло бы, если бы вы заметили, что функции всегда выдают один и тот же результат.
тривиальный пример: isqrt(power2(x)), где isrqt(x) — «{uint a; for (a=0;x>=(2*a)+1;x-=(2*a++)+1); return a;}», а power2(x) — рассчёт квадрата по таблице.
нетривиальный — это реализация алгоритма для рассчёта выражения   , где число квадратных корней передаётся функции — компилятор вряд ли сможет додуматься до того, что это число и есть результат выражения.
 
Добавлено:
нельзя взваливать оптимизацию алгоритма на компилятор — его задача это оптимизация кода, а поиск и реализация оптимального алгортима — задача программиста

Всего записей: 146 | Зарегистр. 21-12-2006 | Отправлено: 16:48 11-01-2007 | Исправлено: Quark Fusion, 17:01 11-01-2007
XDiaBLo



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

Цитата:
Или вы считаете что PHP и С++ языки из одной категории?

Сейчас век интернета, и я думаю перспективнее языки направленные на интернет приложения. Поэтому я и смотрю с той точки зрения. И PHP я вообще-то не с С++ сравнивал, раскрой глаза пошире!

Всего записей: 244 | Зарегистр. 13-05-2004 | Отправлено: 12:52 12-01-2007
Qraizer



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Гм... Ты вообще не понял, а чём это я. Алгоритм в частности может описывать метод построения другого алгоритма. Например, описание метода математической индукции - это алгоритм, но сам метод математической индукции - это тоже алгоритм. Чтобы ты не сомневался в потенциале шаблонного метапрограммирования, воттебе для примера. Там тебе в частности и реализация твоей isqrt() в частности. Если у меня получилось так, что мне в программе потребуется решить квадратное уравнение, но при этом его коэффициенты являются константами, то из трёх вариантов - решить в run-time, решить на бумажке и подставить в программу результаты (фиии!), решить в compile-time - я предпочту последнее. Особенно, если их будет не одно. И тем более, если в ТЗ от версии к версии меняются их коэффициенты.
Заметь, выражение - это тоже константная сущность. Как в программу вобъёшь, так оно и откомпилится (калькуляторы не рассматриваем - это отдельная тема и для скриптовых языков куда как более подходящая). Если я снабжу компилятор метаалгоритмом построения оптимального цикла по этому выражению... в общем теперь ты понял, я надеюсь. Пусть работает компилятор, а не я.
 
P.S. К слову сказать, напомнило. Как-то на работе коллега пришёл и задал всем задачку: написать числа от 1 до 10 четырьмя четвёрками и математическими операциями. Оказывается его дочери (в смысле всему классу) её в школе задали. У них возникли сложности с 10. Ну, не догнали они, что четвёрки можно и вместе написать, без операций: (44-4)/4. Когда я ради смеха предложил ещё вариант (4!-4)/pow(4, 1/sqrt(4)) (надеюсь, смог передать исходную форму выражения), то у него случился припадок, а когда ещё добавил твою (кстати, я её впервые увидел у Перельмана в "Занимательной алгебре") слегка видоизменённую формулу с пирамидой корней (только там их было двенадцать, под самим нижним - произведение двух четвёрок, а основания логарифмов тоже были записаны как квадратные корни из четвёрок - он сказал, что его дочь обязательно принесёт в школу именно это решение. Потом рассказывал, в каком шоке был учитель.

Всего записей: 613 | Зарегистр. 08-08-2006 | Отправлено: 13:26 12-01-2007 | Исправлено: Qraizer, 13:49 12-01-2007
Quark Fusion



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Qraizer, если вы имели ввиду решение выражения типа sqrt(4) или поиск корней заданного! уравнения во время компиляции, то это никак не относится к оптимизации выражения от X или решения произвольного уравнения, где коэффициенты — переменные.
кто мешает в программе определить константу, значение которой она сама и рассчитывает? не все языки, конечно, способны откомпилировать код и запустить его на рассчёт выражения, а уже потом слинковать его с результатами. Не проверял лично, есть ли такие вообще. Потому как компилятор может и не определить есть ли какие-либо внешние последствия у вызываемого кода или нет, особенно когда в нём используются внешние библиотеки.

Цитата:
Если у меня получилось так, что мне в программе потребуется решить квадратное уравнение, но при этом его коэффициенты являются константами, то из трёх вариантов - решить в run-time, решить на бумажке и подставить в программу результаты (фиии!), решить в compile-time - я предпочту последнее.  
а как насчёт варианта «решить в run-time и подставить в программу», почему обязательно на бумажке считать? К тому же очень малую часть можно реализовать на этапе компиляции.
 
Кстати в C шаблоны обрабатываются препроцессором, а не компилятором.
И пример рассчёта констант в процессе компиляции имеет мало общего с автоматической оптимизацией кода, поскольку фактически они рассчитываются другим языком, с таким же успехом пожно влепить перед компилятором любой обработчик сриптового языка, который рассчитает выражения по предварительно заданным алгоритмам.
 
в любом случае, если компилятор определяет какое-то выражение в цикле как константу, то он его выносит за цикл и не рассчитывает его каждый раз, хотя если вы циклически вызываете функцию, в которой есть это выражение, то тут уже надо алгоритм менять.
 

Цитата:
Заметь, выражение - это тоже константная сущность. Как в программу вобъёшь, так оно и откомпилится (калькуляторы не рассматриваем
однако нас интересует результат выражения и причём тут калькуляторы? разве eval(x) сильно отличается от function(x)?
 
Добавлено:

Цитата:
Чтобы ты не сомневался в потенциале шаблонного метапрограммирования
В пользе шаблонов никто и не сомневается, вот только назначение их не в рассчёте чего-либо при компиляции, а в автоматической генерации кода.
 

Цитата:
Потом рассказывал, в каком шоке был учитель.
оффтопик: гы-гы-гы дочка в школе: «а у меня папа — математик! »
 
 
 
 
Добавлено:

Цитата:
И PHP я вообще-то не с С++ сравнивал, раскрой глаза пошире!
XDiaBLo, вы просто сначала высказались, что Java быстрее C++, а потом что вы проверяли как она быстрее PHP, вроде как в подтверждение того, что она самая быстрая (байткод против компиляции), сложилось впечатление, что вы разделили языки на «Java» и «не-Java»

Цитата:
Сейчас век интернета, и я думаю перспективнее языки направленные на интернет приложения.  
а какие именно осбенности языков на них направленны? Тут вопрос лишь в том, на какой платформе вам нужно писать программу, а интернет-приложение при наличии собственного сервера можно делать на чём угодно, способного вызывать внешние модули или имеющего встроенные средства для работы с сетью.
 
Кстати, с точки зрения интернет-приложений перспективен ActionScript 3.0 (Flash9, Flex) в связке с другим языком (проще всего с Java). Т.к. Java VM автоматически клиенту не устанавливается.
 
Добавлено:
P.S. тема назыыается «Самый перспективный язык программирования», а не язык для интернет-приложений

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



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Quark Fusion
Не разговаривай пожалуйста как с ребёнком, я знаю что я говорил. Я говорил что Ява бывает быстрее чем С++, но млин, ладно, забудем про это. А что самая быстрая я не утверждал!!! Я сам пишу в основном на С++, и немного на Яве, и ещё иногда на С#, а так, могу на чём угодно. Не разделяю мир на Ява и не-Ява. И предпочитаю не разговаривать с теми, кто коверкает мои слова.
А писать я понимаю что интернет-приложения можно на чём угодно, только вот C++ не самый подходящий язык для этого.
А насчёт названия темы, так я повторяю ещё раз, для непонимающих: "Сейчас век интернета, и я думаю перспективнее языки направленные на интернет приложения."
 
Добавлено:
Quark Fusion
Да, а что Ява бывает быстрее С++ я говорил не на собственном опыте основываясь. И про медлительность сборщика мусора опять же могу дать ссылку почитать, что он по производительности сравнителен с менеджером памяти(или как там его) в С++.

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



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

Цитата:
А что самая быстрая я не утверждал!!! … Не разделяю мир на Ява и не-Ява. И предпочитаю не разговаривать с теми, кто коверкает мои слова.  
я и не коверкал, лишь сказал что косвенно сложилось впечатление, но забудем об этом — рад, что я ошибся
 

Цитата:
Сейчас век интернета, и я думаю перспективнее языки направленные на интернет приложения
интернет-приложения могут и измениться со временем — сейчас клиентская часть используется лишь в качестве лёгкого терминала и не очень заметна тенденция на оснащение всех нас такими терминалами, скорее тут лишь узкое направление на мобильность приложений
 
В самом ближайшем будущем видится многоядерность и языки должны поддерживать многопоточность и оптимизацию под неё. Также очень важны инструменты тестирования, особенно способность компилятора на месте проверять корректность алгоритмов запуском их с заданными параметрами и сверке результатов.
 
Добавлено:

Цитата:
"Сейчас век интернета, и я думаю перспективнее языки направленные на интернет приложения."  
Перспективнее не сами языки, а их изучение. Сейчас необходимо знать JavaScript, ActionScript, Java и C#, а также соответствующие платформы. С++ идёт отдельно и находится в другой области применения. (точнее у первых языков область применения ограничена)
Я уж не говорю о языках разметки, таких как HTML, CSS и XML.

Всего записей: 146 | Зарегистр. 21-12-2006 | Отправлено: 17:49 12-01-2007
Yusup



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята хочу у вас спросить стоит ли сейчас изучать C++ Builder или вместо него надо изучать Visual C++?
Сейчас в сети много объвлений о приеме на работу программистов владеющими Visual C++ (и C#), а вот на счет С++ Builder'a что-то не видно.
Сам я пытался изучать Visual C++ но он более сложный, как мне показалось чем C++ Builder и что C++ Builder хорош тем, что в нем легко создаются прикладн. пр-мы чем на Visual C++.

Всего записей: 964 | Зарегистр. 11-10-2005 | Отправлено: 03:13 13-01-2007
Quark Fusion



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

Цитата:
Ребята хочу у вас спросить стоит ли сейчас изучать C++ Builder или вместо него надо изучать Visual C++?  
надо в первую очередь язык изучать, а потом уже IDE, набор библиотек и WinAPI
 
 
 
Добавлено:

Цитата:
C++ Builder хорош тем, что в нем легко создаются прикладн. пр-мы
прикладные программы в C# еще проще создаются, но это более заслуга IDE и платформы, чем языка

Всего записей: 146 | Зарегистр. 21-12-2006 | Отправлено: 09:32 13-01-2007
Qraizer



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Quark Fusion
Цитата:
Qraizer, если вы имели ввиду решение выражения типа sqrt(4) или поиск корней заданного! уравнения во время компиляции, то это никак не относится к оптимизации выражения от X или решения произвольного уравнения, где коэффициенты — переменные.
Кажется, до меня тоже кое-что дошло. Что такое "шаблоны выражений", представление имеется? Если нет, то большую часть поста можно просто опустить, что и делаю. Замечу только, что эту ссылку я привёл только для того, для чего и указал - для демонстрации потенциала шаблонов. К "шаблонам выражений" это не имеет никакого отношения.
Цитата:
Кстати в C шаблоны обрабатываются препроцессором, а не компилятором.
Кстати, в C шаблонов нет. Препроцессор - это такой же "механизм шаблонов", как машина Тьюринга - "язык для практического применения". Боюсь, что я даже приуменьшил.
Цитата:
И пример рассчёта констант в процессе компиляции имеет мало общего с автоматической оптимизацией кода, поскольку фактически они рассчитываются другим языком, с таким же успехом пожно влепить перед компилятором любой обработчик сриптового языка, который рассчитает выражения по предварительно заданным алгоритмам.
В корне неверно. Во-первых, шаблоны - часть языка, а отнюдь не другой язык, во-вторых, "с таким же успехом" не получится, ибо это будет использованием двух языков, а если рассмативать ещё и такие варианты, то этот топик просто теряет смысл, ибо все тут признают, что сАмой перспективностью будет именно связка нескольких.
Цитата:
В пользе шаблонов никто и не сомневается, вот только назначение их не в рассчёте чего-либо при компиляции, а в автоматической генерации кода.
Ага, вот значит как. А назначение классов тогда в реализации принципов ООП? Интересная точка зрения.

Всего записей: 613 | Зарегистр. 08-08-2006 | Отправлено: 19:36 13-01-2007
Quark Fusion



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

Цитата:
Что такое "шаблоны выражений", представление имеется?  
имеется, могу только заметить, что они лишь сокращают написание требуемого количества кода, а не выполняют оптимизацию — запись требуемого конечного алгоритма в ручную может дать больший эффект, к тому же наличие «лишних» операций шаблоны убрать никак не способны. Поэтому я говорю, что в узких местах не надо надеятся на то, что ваши шаблоны с компилятором создатут вам идеальный код, а попробовать улучшить алгоритм.
«"строить" наиболее эффективный цикл независимо от сложности выражения» — сейчас это невозможно для произвольного выражения, тут требуется сложный анализатор кода, способный «понять», разобрать на части и оптимизировать выражение. «шаблоны выражений» могут решить это задачу лишь для некоторого набора выражений, для которого они были созданы.
 

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

Цитата:
А назначение классов тогда в реализации принципов ООП?
Класс скрывает разделяемый код, а шаблон — копируемый. Или я не прав?
 

Всего записей: 146 | Зарегистр. 21-12-2006 | Отправлено: 21:56 13-01-2007 | Исправлено: Quark Fusion, 22:04 13-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