Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Самый перспективный язык программирования

Автор: Qraizer
Дата сообщения: 15.01.2007 13:31

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

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

Цитата:
Вот как раз это я и имею в виду. И с самого начала утверждаю, что всё это возможно. Выполняют оптимизацию до уровня написанного вручную цикла; исключают "лишние" операции полностью; не требуют специального сложного анализатора кода, т.к. такой уже встроен в компилятор, и нужно только грамотно им воспользоваться.
Возможно, но на практике это не всегда приводит к наилучшему результату. Очень важно понимать и правильно использовать эти методы, и всё-таки не стоит забывать о проверки своего алгоритма на излишние операции.

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

Классы и ООП — это технологии программирования, точно так же, как и внешние библиотеки — без всего этого нам бы приходилось тащить за своей программой еще тонны кода, вместо подключаемых модулей, какими классы и являются. Более того, классы являются типом данных, который может сам себя обрабатывать (проверять, вычислять и т.п.). Вобщем я не спец по теории, рекомендую интересующимся почитать книжку

Добавлено:
Кстати по поводу оптимизации: в каких языках есть возможность определить функцию как не имеющую внешних последствий? Это нужно например для выноса её из цикла:
Код: for i from a to b do:
с = dosomething()
d = sum(a, b)
next
Автор: Qraizer
Дата сообщения: 16.01.2007 12:53

Цитата:
Возможно, но на практике это не всегда приводит к наилучшему результату. Очень важно понимать и правильно использовать эти методы, и всё-таки не стоит забывать о проверки своего алгоритма на излишние операции.
То, в чём я не уверен, я никогда не утверждаю абсолютно. В том, что я сказал о том, как смогу реализовать шаблоны выражений, я уверен абсолютно. С точностью до гарантий стандарта C++ и соответствий компиляторов этому стандарту.
Цитата:
Шаблоны несомненно очень важны и полезны в языке, но в С++ они не самые лучшие, очень много идей по их использованию появилось после стандартизации и некоторых вещей в них не хватает.
Ну, чего-то всегда не хватает. Мне, например, в С++ не хватает рефакторинга. И информации о типах времени компиляции, особенно если учесть, что компилятор этой информацией обладает в полной мере.

P.S. Шаблоны, кстати, своим теперяшним видом обязаны не только грамотной политике авторов стандарта. Некоторые нюансы были введены специально для возможности реализовать стандартную библиотеку в её теперяшнем виде. Кое-что потом не понадобилось, но убрано не было. Например, шаблонные параметры шаблонов были добавлены в язык для поддержки аллокаторов, по потом оказалось, что аллокаторы могут быть реализованы и без них, но убирать шаблонные параметры шаблонов уже было поздно, они проникли в драфты и успели оказать влияние на общественность. Были также и банальные технические опечатки, как случилось, например, с "шаблонными методами классов", если не ошибаюсь, в оригинале имелись в виду "шаблонные методы шаблонных классов".

Добавлено:

Цитата:
Кстати по поводу оптимизации: в каких языках есть возможность определить функцию как не имеющую внешних последствий?...
Как-то оаботал в Watcom-ом, вроде у него были очень мощные прагмы, которые сильно облегчали жизнь оптимизатору. Возможно, в нём такое и было.
Автор: kvadrator
Дата сообщения: 21.12.2007 18:49

Цитата:
надо в первую очередь язык изучать, а потом уже IDE, набор библиотек и WinAPI

И принцыпы програмирования если понять что и как происходит можно изучать любой язык
Автор: XDiaBLo
Дата сообщения: 24.01.2008 11:35
2kvadrator

Ага, типа "изучайте азбуку, если понять буквы, можно прочесть любую книгу".
Автор: delover
Дата сообщения: 25.01.2008 14:27
Qraizer

Цитата:
Мне, например, в С++ не хватает рефакторинга.

Бросай ты это грязное дело. Изучай байсик, там рефакторинг не нужет. Самый перспективный язык это байсик, в нём даже циклы есть.
Автор: terminat0r
Дата сообщения: 25.01.2008 14:57
Можно вопрос? Перспективный в какую сторону?
С точки зрения долгожительности, популярности, удобств использования или уровня зарплат?
По каждому с этих пунктов вообщем то разные языки будут.
По всем вместе- нет такого, как мне кажется.

Автор: BackstreetCat
Дата сообщения: 26.01.2008 08:10
А мне кажется что есть. Вернее их 2.
Автор: Jokerjar79
Дата сообщения: 26.01.2008 08:39
Имхо C++, так-как подавляюшее большинство SDK, документации (тот же MSDN) описан на нем
Автор: eLLoco
Дата сообщения: 26.01.2008 21:20
всю ветку читать лень, так что если повторюсь, ногами не бить

terminat0r


Цитата:
Можно вопрос? Перспективный в какую сторону?

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

из этого получается, что С++ *1 в лидерах, хотя я больше C# *2 для приложений и Web / Perl *3 для повседневных задач использую.

*1 пока что .
*2 с этим не все однозначно (и остальными CLS).
*3 как только количество библиотек для python вырастет до объемов CPAN, имеет риск не выжить (перестанет использоваться в новых проектах).

кстати, довольно сложно выделить технологию и язык программирования. тот же C# в данном случае следовало обозвать C#/VB.NET/J#/Остальные_CLS_языки, ибо используя .NET любым из них разницу ощутить сложно (кроме разве что IronPython/IronRuby, но их выделение тоже довольно условно), поскольку скомпиленные программы будет не отличить, да и стиль программирования очень похож.

еще готов подписаться под вот этим:

Цитата:
В общем, основной мой тезис - каждой работе свой инструмент

писать дрова - извольте, голый С. быстро сваять приложение по бухучету для пивного ларька - почему бы не Delphi или C#? поэтому перспективность языка следует оценивать по перспективности области в которой он применяется. на сегодня считаю двумя самыми-самыми областями Web (здесь, кстати, C# тоже засветился) и ERP (недоERP типа 1С тоже считается ). отсюда выводы...

хм, начали с великого С++ и закончили недополуязыком 1С . и отсюда тоже можно сделать выводы, что так просто выводы сделать, очевидно, не получится.

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

все пора заканчивать, осталось добавить, что конечно же, все это InMyHumbleOpinion
Автор: BackstreetCat
Дата сообщения: 27.01.2008 18:48
Товарищи модераторы, добавьте пж-ста 1С в список для голосования.
Автор: Qraizer
Дата сообщения: 27.01.2008 19:31
delover, не брошу. Бэйсик знаю, на нём юнит-тесты пишу. Тоскую по плюсам. Согласен мириться с отсутствием в нём кой-чего, зато имею гораздо больше, чем может дать этот монстр Бэйсик. И уж точно не назвал бы Бэйсик самым перспективным.
Автор: AlexeiKozlov
Дата сообщения: 27.01.2008 23:00
ага,толковать это голосование нельяз в рамках движка этого форума. только в разрере,по области применения и другим разрезам,имеет смысл обсуждать этот вопрос.

а я так язык многие чешут о своем личном
Автор: Rudia
Дата сообщения: 28.01.2008 17:18

Цитата:
Мне, например, в С++ не хватает рефакторинга.

Это не проблема языка, а проблема конкретной IDE
Автор: eLLoco
Дата сообщения: 29.01.2008 06:29
Rudia

Цитата:
Это не проблема языка, а проблема конкретной IDE

не скажи, рефакторинг к C++ прикрутить можно, но ввиду сложности синтаксиса, он будет выглядеть довольно усталым по сравнению, например, с C#, синтаксис которого чрезвычайно прост (и для компилятора/лексико-синтаксического_анализатора тоже), что позволяет осуществлять порядка 20 видов рефакторинга (ReSharper, в голой VS меньше).
если я ошибаюсь, приведи, пожалуйста, пример IDE с мощным рефакторингом С++ текстов.
Автор: Rudia
Дата сообщения: 29.01.2008 10:14

Цитата:
приведи, пожалуйста, пример IDE с мощным рефакторингом С++ текстов.

На vs ставишь visual assist x и для с++ появляется не меньше возможностей рефакторинга, чем в голой студии для c#
Автор: eLLoco
Дата сообщения: 29.01.2008 10:25
Rudia

Цитата:
visual assist x

посмотрел, бедновато конечно, но хотя бы что-то.

кстати, никто не в курсе, а в Eclipse (CDT) есть рефакторинг для cpp? - посмотрел, только rename
Автор: urmigar
Дата сообщения: 09.02.2008 16:54
Самым перспективным будет новый язык программирования, разрабатываемый нашей фирмой.
Автор: yurinb
Дата сообщения: 09.02.2008 17:24
urmigar

Цитата:
Самым перспективным будет новый язык программирования, разрабатываемый нашей фирмой.


Пока это голословное утверждение. Продолжение будет?
Автор: Qraizer
Дата сообщения: 09.02.2008 17:33
Боюсь, нет. Иначе получится реклама. Впрочем, это зависит от контента продолжения.
Автор: shilder
Дата сообщения: 11.02.2008 14:47
А я считаю, что сейчас всё более популярными будут становиться языки с функциональным уклоном. Если смотреть на тенденции: в цэ шарп добавили анонимные функции, добавили лямбду, добавили замыкания и т.д. Для jvm есть например scala, для .net есть Nemerle. Народ начинает более активно пользоваться функциональщиной, появляется интерес к языкам типа ocaml (либо клон для .NET F#), haskell, clean (который кстати в computer languages shootout не на последнем месте) и прочее...

В общем всё новое - это хорошо забытое старое (всё это есть например в том же лиспе, которому уже лет так немало).

Незаслуженно забыл ещё средства метапрограммирования, но они тоже вполне активно развиваются и будут использоваться в будушем...
Автор: muhammadi
Дата сообщения: 15.02.2008 12:41
кликните сюда и все узнаете
Автор: terminat0r
Дата сообщения: 15.02.2008 16:56
muhammadi
Щас модератор придет и ты тоже все узнаешь

shilder

Цитата:
А я считаю, что сейчас всё более популярными будут становиться языки с функциональным уклоном.

А популярность этих языков никуда и не исчезала. Просто области применения не пересекались.
Автор: Ironcast
Дата сообщения: 21.06.2008 03:22
Ассемблер рулит, фортран и кобол всё остальное от лукавого!
Автор: SergBSI
Дата сообщения: 25.06.2008 22:01
Есть какой то язык Raby кажется - где о нем почитать а то только отрывестые сообщения
Автор: KADABRA
Дата сообщения: 25.06.2008 22:12
SergBSI

Цитата:
Есть какой то язык Raby кажется - где о нем почитать а то только отрывестые сообщения

http://www.ruby-lang.org/en/
http://www.ruby-lang.org/ru/

http://www.google.com.ua/search?q=ruby&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-GB:official&client=firefox-a

Страницы: 1234567891011121314151617181920212223

Предыдущая тема: Подскажите сайт о написании компьютерных игр.


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.