| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Новые веяния моды в программировании |
| Автор: jonie 26.9.2009, 20:40 |
| Итак, веб развивается.. и вот уже на горизонте замаячила ОСь от гугла (которая веб ориентированная), да и прочие не отстают (например плагины для Chrome\FF почти самостоятельные программы, но на скрипт языках)..... Что же будет с С++ ? Может стоит уже сейчас учить какой-нибудь javascript? |
| Автор: GoldFinch 26.9.2009, 20:54 |
| jonie, говорили же уже за полезность С++ |
| Автор: NightmareZ 26.9.2009, 22:15 | ||
Давно пора. |
| Автор: jonie 26.9.2009, 22:32 |
| GoldFinch, вопрос не в полезности, а в интересе общества, а значит и восстребованности специалистов данного направления. Вы можете знать очень полезный язык фортран, но работу с ним найти не так просто (по крайней мере в РФ). |
| Автор: NightmareZ 26.9.2009, 22:33 |
| О, круто, меня уже минусуют. Товарищи минусующие, а вы правда считаете, что зная один C++ вы можете называться программистами? |
| Автор: jonie 26.9.2009, 22:39 |
| NightmareZ, "здесь вам не тут" (не хабра с нытиками), а ты думаешь знание 10 языков программирования говорит о том что ты программист ? я-то всегда думал что программист это математик, знающий (и умеющий применять к месту) алгоритмы и т.п...... |
| Автор: Oxy 26.9.2009, 22:47 |
а Вы не думаете что тогда уже будут рулить: silverlight, java applets, flash, ... т.е. C#, Java, ActionScript, C++ dot net, ... Добавлено через 1 минуту и 10 секунд NightmareZ, а кто по-вашему программист? |
| Автор: kemiisto 26.9.2009, 22:51 |
Только он сам. Учите уж чего-нибудь более многообещающее. Тотже Python. |
| Автор: GoldFinch 26.9.2009, 22:57 |
| NightmareZ, я думаю тут почти все знают не один С++ |
| Автор: Oxy 26.9.2009, 23:14 | ||||||
если я знаю только C++ и могу алгоритмы воплощать в жизнь, разными способами, в разных сферах, я программист или нет?
что завязано? |
| Автор: NightmareZ 26.9.2009, 23:21 | ||
Ты - нет. Ибо ты этого не можешь. Или пруфлинк в студию. Ты серьёзно не знаешь сферу применения яваскриптов? |
| Автор: kemiisto 26.9.2009, 23:23 |
Интернеты. Дело не во мне. А в индустрии. Она отказыватеся от ++ и смотрит в сторону его приемников. Java, C#, Python. Я Python для примеру привёл. Вообще, я давече уже высказаывался по-поводу изучение второго и последующих языков программирования http://forum.vingrad.ru/forum/topic-273740/anchor-entry1973962/0.html. Копипастить не буду. |
| Автор: Oxy 26.9.2009, 23:32 |
в каких сферах я не могу что-то сделать? я javascript знаю на много лучше C++, но со временем код на js становится все больше и больше, хотя многое могло бы быть уже на клиенте(хотя бы jQuery), зачем каждый раз передавать клиенту столько кода, и интерпретируют его иногда по разному, приходится придумывать костыли |
| Автор: GoldFinch 27.9.2009, 00:09 |
| kemiisto, Java, C#, Python никогда не будут приемниками С++ потому что ВМ вот когда они будут компилиться в нативный код - тогда они смогут стать приемниками С++ |
| Автор: Lazin 27.9.2009, 00:25 |
| Я думаю что будет уменьшаться, но сила инерции здесь будет очень велика. Ну а насчет веб-а, на С++ то-же пишут, всякие Facebook-и и яндексы, которым приходится обрабатывать очень много данных, используют С++. Гугловский big table то-же не на PHP написан. В общем С++ будут по прежнему использовать для всякого server side-a Ну и в gamedev-e, естественно... XNA, это конечно круто, но люди, которые там работают, даже стандартные контейнеры иногда боятся использовать... FPS наше все Но! Через несколько лет все может измениться. Все дело в законе Мура, как известно, тактовые частоты современых процессоров, некоторое время назад, перестали расти. Вместо этого, начало расти количество ядер, этих процессоров. Года через 2-3, hi end десктоп, будет похож на современный сервер, то-есть иметь штук 16 CPU. Реализовывать параллельные/конкурентные алгоритмы на С++, это pain in the ass. Никогда не знаешь, будет ли оно на самом деле работать быстрее, или же все будет работать даже медленнее обычного, последовательного кода. С++, это shared memory и explicit locking, со всеми вытекающими. Помимо этого, еще существует такая штука, как vector processing, а с векторизацией кода, у С++ компиляторов как правило туго. |
| Автор: GoldFinch 27.9.2009, 00:25 |
| в жабаскрипте радуют лямбды с замыканиями, полная интроспекция, и простой синтаксис инициализации структур (объектов) но лямбды с замыканиями будут в С++0х (0xA-0xF), а интроспекция и прочие радости жизни... ну чтож поделать, зато в жабаскрипте перегрузки операторов нет |
| Автор: Oxy 27.9.2009, 00:31 |
а зачем? впрочем как и в Java. |
| Автор: GoldFinch 27.9.2009, 00:38 |
| в конце концов, язык используется не ради того чтобы его использовать потому что он "хороший", а для решения конкретных задач. Пока что, С++ хорош. На нем удобно писать, там где писать неудобно - можно подстроить синтаксис, перегрузив операторы для реализации DSL, обобщив код чтобы убрать копипасту и лишние зависимости. При этом производительность весьма хороша. Конечно языки с динамической компиляцией и хорошей динамической оптимизацией дали бы еще большую производительность. Но я хз есть ли они, и удобно ли на них писать. |
| Автор: Lazin 27.9.2009, 00:40 | ||
наоборот, VM обеспечивает модульность и interoperability(не знаю как перевести), простой пример, ты написал программу на с++, в которой использовал стороннюю библиотеку, потом вышла новая версия этой библиотеки, которая умеет портить память В результате, твоя программа упадет, но в каком нибудь неожиданном месте, тебе не кажется что это не совсем... технологично, что-ли. Плохая модульность. Другой пример, у тебя есть библиотека, написанная на чем нибудь экзотическом, с calling convention ты разобрался, но вот беда, библиотека оперирует с float-ами другого формата и функции этой библиотеки возвращают далеко не примитивные типы данных... Х#вое interoperability. |
| Автор: GoldFinch 27.9.2009, 00:43 |
| Oxy, перегрузка операторов затем что DSL, и затем что обобщенность я предпочитаю писать iterator++ вместо iterator.increment() и писать код одинаково работающий как со стандартными числовыми типами, так и с любыми классами поддерживающими арифметические операторы. |
| Автор: Lazin 27.9.2009, 00:56 |
| в последнее время меня вообще умиляют рассказы о всевозможных DSL на C++. DSL, как правило!!, это когда ты сидишь и пишешь много часов не саму программу, а этот гребаный DSL, ф-я которого состоит в том, что-бы автоматически выявлять логические ошибки во время компиляции это неоправданное усложнение кода в большинстве случаев, а поддержка кода состоящего(чуть более чем сами знаете как) из шаблонной магии, это ###, потому-что через месяц возникает вопрос, что за ### написал эту ### если С++ код использует template metaporgramming для реализации expression templates для реализации EDSL для какой-нибудь маловажной ###, то скорее всего программисту просто было пакайфу его писать, вероятно он чувствовал себя ### каким умным в этот момент и вряд-ли задумывался о том, что тратит время зря Но конечно, если вас зовут Joel de Guzman, то флаг вам в руки, в остальных случаях... |
| Автор: GoldFinch 27.9.2009, 00:58 |
| Lazin, цена которая платится за преимущества ВМ слишком высока. В ВМ есть только то, что есть в этой ВМ, а это не всегда соответствует возможностям конкретной системы, под которую и пишется программа. Допустим в ВМ нет доступа к реальной памяти, поэтому код библиотек не может ее портить. Но если этот доступ был бы реально полезен для задачи - его не получить. Или например в ВМ используется один формат float'ов , а на самом деле этих форматов float'ов много, и не факт что тот float который в ВМ лучше подойдет к моей задаче, но нормального способа юзать другой float в ВМ нет. Добавлено через 5 минут и 35 секунд Lazin, ДСЛ - это не обязательно вещи уровня лямбды или спирита. перегрузка * для перемножения матриц - это уже ДСЛ. использование + для конкатенации буферов - это тоже ДСЛ. но если в коде будут сложные выражения, то шаблоны выражений вместо явной композиции функции могут реально ускорить код, при этом сделав его более читаемым. Да, это только для тех случает когда сложность задачи оправдывает время на написание ДСЛ. и если знать язык и методы написания такого кода - то много времени это не займет Добавлено через 7 минут и 7 секунд и да, это действительно пакайфу писать =) |
| Автор: Lazin 27.9.2009, 10:55 | ||||||
не преувеличивай, так можно договориться и до того, что метод push_back, добавляющий что-либо в конец контейнера, это то-же DSL
Добавлено через 10 минут и 1 секунду
оговорюсь, я использую boost.spirit, но не потому-что это круто |
| Автор: Любитель 27.9.2009, 11:29 | ||||||
Т. е. кеширование у нас отменили?! А в случае с С++ - почему в стандартный рантайм не встроена, скажем, ГУИ-либа? Кто-то от этого страдает?
Ну.. ТЫ говоришь про бэкенды. Да-да СУБД никто не писается писать на прикладных языках - это область системного программирования. Здесь С++ никуда не уйдёт. Сспоры, что С != С++ оставим, я это понимаю, но в данном случае это неважно, ибо для СУБД оправдано использование С++ в разумной мере
Проблема не в этом. Проблема в том, что в С++ средств полноценного метапрограммирования на самом деле нет. Точней так - есть средства метапрограммирования, но предназначенные только для абстрагирования от типа. А ДСЛ-и строить на С++ - это извращенье |