Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Какой язык выбрать: С++ или другой? |
Автор: Gold Dragon 10.2.2012, 10:17 |
Не совсем верная ветка для вопроса, но общей ветки по программированию так каковой нет, да и склоняюсь я к С++ А вопрос в сущности такой.. В своё время увлёкся ВЕБ и полностью ущё в программирование на PHP. Когда очнулся, то столько всего стало и так сильно развилось, что не могу выбрать что лучше. Мне всё чаще и чаще нужно писать программки, которые должны работать просто на компьютере, ну или по дворовому, нужно делать "экзешники". Ранее писал программы на Delphi. Он как-то более знаком для меня, хотя очень сильно равился. Но так как можно сказать что я уже ничего не помню и учиться мне нужно " с нуля", то вот какое выбрать мне язык чтобы писать "экзешники"? Мне советуют: "уж коль ничего не знаешь то учи С++". Аналогии с PHP много. Хотя другие говорят что ООП у Java лучше. Что думаете? ps я понимаю что глупо спрашивать здесь какой язык лучше, но всё же, можно чуть объективности.. Просто я сам склоняюсь к изучению С++ |
Автор: oldspamer 10.2.2012, 10:33 |
Сложный вопрос![]() ![]() ![]() |
Автор: bsa 10.2.2012, 10:38 |
Gold Dragon, если у тебя есть желание/возможность изучать язык несколько лет, то можешь освоить С++. В связке с Qt он позволяет легко и непринужденно делать оконные приложения. Если хочется всего и сразу, времени нет, а платформа только Windows, то твой выбор - C#. |
Автор: Gold Dragon 10.2.2012, 10:39 |
Ну холивар мне не нужен.. мне нужно решить смогу ли я быстро перестроится на новый язык и какова его перспектива в "языковых войнах" ![]() bsa, видимо с последними политическими веяниями одной винду уже мало ![]() Совсем забыл.. наверное немало важное это ещё и наличие программ для разработки... хотя я так думаю ух выбор большой как платных так и бесплатных.. Добавлено через 8 минут я так понимаю C# это майкрософтовское детище которое заточено исключительно под .NET Framework? |
Автор: bsa 10.2.2012, 10:48 |
Если ты планируешь разработку под разные платформы, то тебе стоит обратить внимание на связку C++/Qt (качай Qt SDK). Но для начала надо выучить язык. Это займет не менее нескольких месяцев. В разделе для новичков в ответах на часто задаваемые вопросы есть список рекомендуемой литературы. |
Автор: 502 10.2.2012, 11:02 |
приведи примеры каких программ ты хочешь написать ![]() |
Автор: Gold Dragon 10.2.2012, 11:10 |
да в принципе любые, например сейчас требуется обработка (парсинг) документов различного формата (rtf, doc, html, odt), работа с сетью / через сеть |
Автор: tzirechnoy 10.2.2012, 11:20 |
1) Я выскажусь за erlang. Очень прост в изучении, при этом прострелить себе ногу немного сложнее чем на чём-либо ещё, исходники читаются лучшэ чем у многих, хорошо масштабируется вверх при надобности. 2) И выскажусь против C++. Мессиво разномастных концэпцый, от высокоуровнего ассэмблера имени Кернигана до компилируемой типизированной виртуальной машыны, призванной замениить лямбду. Вменяемой лямбды, ЧСХ, так и нет -- и как на этом писать поэтому вообще понятно с трудом. В общем, дрянь, притом без области применения. Максимум вменяемости C++ -- это написание библиотек для пользовательского гуя, область, которую правильно делать на C, и в которой ООП на самом деле полезен -- потому имеет смысл использовать C с объектами. |
Автор: borisbn 10.2.2012, 11:22 | ||
ООП не в ЯП, а в голове/мозгах. В ООП-стиле можно хоть на ассемблере писать. Я не шучу.
Многие оооооч. хвалят Mono. Судя по своему опыту - ~15 лет на Си++ и месяц в до-диезе - порог вхождения в последний на пару порядков ниже. а вот это, пожалуй, самый важный вопрос. ИМХО нужно выбирать средство под задачу, а не наоборот |
Автор: tzirechnoy 10.2.2012, 11:29 | ||
Если хочешь писать именно под кофемолки (в смысле -- под всякий embedded, с мегабайтами-десятками мегабайт памяти, типа смартфончиков) -- то java, конечно. Варианты есть, но в них проблем ещё большэ. Если для чего-то ещё -- то во-первых практика показала, что программы на языке для кофемолок оказываются адски жрущими, неповоротливыми, с косой инфраструктурой на большых задачах, а во-вторых создатель джавы перекуплен, и новый хозяин её откровенно сливает. |
Автор: Gold Dragon 10.2.2012, 11:30 | ||
Добавлено через 1 минуту и 26 секунд а что насчёт Delphi? |
Автор: tzirechnoy 10.2.2012, 11:34 | ||
Да, почему не C# -- ну, сам язык обсуждать дажэ особо смысла нет -- поскольку библиотеки к нему пишэт одна известная своим мудизмом компания. Шансы, что в обозримом будущем начнёт писать кто-то ещё -- ну, есть, но когда начнёт, тогда и поговорим. А сейчас про библиотеки (пользовательского интэрфейса, доступа к СУБД, IPC) нельзя сказать ничего такого, что можно было бы говорить в приличном обществе -- потому промолчу, пожалуй. В общем, не советую. Добавлено через 13 минут и 25 секунд
А там как, в библиотеке WIMP GUI лэйауты ужэ появились? А то в 2008 -- ещё не было. 15 лет разработки, да. Если рассматривать как среду -- то этот визуальный редактор, с "компонентами" на "формах" -- полное дерьмо. Резко сужает возможности оперирования со своей программой -- как за счёт нежэлания слазть с визуальностей, так и просто за счёт незнания программистом возможности оперирования компонентами кроме как в визуальном редакторе. Если рассматривать как язык -- то в C++ макроязык шаблонов ввели, чтобы он немного походил на высокоуровневый язык. В Delphi ничего похожэго не ввели, и на высокоуровневый язык оно просто непохожэ. |
Автор: AndreyIQ 10.2.2012, 12:15 | ||||
Почему всегда плюсы Delphi выставляются как минусы.
И в чем проявляется сужение возможностей оперирования со своей программой. Незнания программистом возможности оперирования компонентами кроме как об уровне программиста ни о чем больше не говорит. |
Автор: Gold Dragon 10.2.2012, 12:20 | ||
|
Автор: newbee 10.2.2012, 13:12 |
ребята, ну смотрите, человек старается, набрасывает. Покормите... Добавлено через 4 минуты и 15 секунд Gold Dragon, никто тебе ничего объективного не ответит. Выбор языков - дело интимное, у каждого своя колокольня. Попробуй сразу несколько, а дальше решай. |
Автор: Gold Dragon 10.2.2012, 13:29 |
ну я в этой ветке вопрос задал потому что к С++ склоняюсь ![]() Пока из общения мои желания заняться С++ только возрастают.. |
Автор: bems 10.2.2012, 14:05 | ||||
компонент еще ладно, но чем тебе форма не форма? чьего нежелания? кажется я знаю ![]()
|
Автор: k0rvin 10.2.2012, 15:05 | ||
Это совсем не одно и то же, но спорить, что высокоуровневей и удобней -- шаблоны или дженерики -- я не буду. |
Автор: bems 10.2.2012, 15:41 |
не одно, я такого и не говорил. Я специально сформулировал "на эту тему" |
Автор: mes 10.2.2012, 15:51 |
Gold Dragon, не стоит учить С++, если не умеете программировать и если не уверены, что он Вам нужен.. зря потратите кучу сил и времени, а эффективного использования все равно не будет.. Добавлено через 40 секунд ведь только в дельфи.нет ? Добавлено через 1 минуту и 44 секунды это к тому что в С++/cli тоже есть дженирики (наряду с шаблонами), но это инструменты среды, а не языка.. |
Автор: Absinthe 10.2.2012, 16:00 |
Я думаю, что тебе стоило бы PHP добить, а только потом за другие языки браться. Что касается формоклепания и Delphi - то советую C# и бесподобный WPF. Кстати в windows-мире эти технологии покрывают почти все. И в никсах тоже работают(mono). |
Автор: $дмитрий 10.2.2012, 16:06 |
Собственные впечатления: Если под винду лучше всего C#. Быстрый старт, понятная структура кода, куча библиотек, хорошая и бесплатная среда разработки от MS, отличная документация и тд Если для кросразработки Java Если для выноса мозга, то С++ |
Автор: bems 10.2.2012, 16:11 |
нет, в нативном коде тоже. Это именно языковая фича |
Автор: Gold Dragon 10.2.2012, 17:45 | ||||
![]()
Я вот тут параллельно читаю другие мнения и большинство утверждает как и ты, что лучше C#, а С++ как ты и сказал ![]() |
Автор: tzirechnoy 10.2.2012, 17:52 | ||||||
Это потому, что то, что дэльфисты считают плюсом -- на самом деле минус. Ну, примерно как героинщики считают удовольствие после укола плюсом сидения на героине. В отличие от большынства людей. Добавлено через 2 минуты и 19 секунд
Проявляются они, очевидно, в том, что дэльфисты своими компонентными формами практически не оперируют. Дажэ тогда, когда это ужэ давно и очевидно требуется. |
Автор: Gold Dragon 10.2.2012, 17:55 | ||
|
Автор: boostcoder 10.2.2012, 17:56 | ||
угу ![]() все же нужно представлять задачи, с которыми можешь столкнуться. я, к примеру, выбираю плюсы в трех случаях: 1)нужна высокая производительность, 2)дико интересная задача, 3)нужна переносимость на большинство платформ. если этих трех пунктов нет, или каким-то из них можно просто пожертвовать, тогда пайтон. но это грустно, скучно, однообразно :( Добавлено через 1 минуту и 38 секунд не нужно выдавать желаемое за действительное ;) |
Автор: Gold Dragon 10.2.2012, 18:01 |
boostcoder, дико интересная задача это что такое? ![]() ну почти ![]() |
Автор: tzirechnoy 10.2.2012, 18:18 | ||||||
Кавычки здесь -- чтобы обозначить, что это термины, обозначающие соответствующие структуры данных в VCL, а не общеупотребительные значения данных слов.
Не хочу рассказывать о своих знакомых. А Вы с какой цэлью интересуетесь? Впрочем, можэте ткнуть пальцэм в любого-первого дэльфиста, взять проект с GUI и большэ чем на 4000 строк, и тщательно проанализировать -- сколько раз надо было бы сделать программную генерацыю форм или компонентов, и сколько раз это сделано.
Весьма интересно, да. (Я-то последний раз работал с Delphi 2007). Ну, это делает Delphi в гонке с C++ немного ближэ к нему. И, всё, равно, какой смысл? |
Автор: Absinthe 10.2.2012, 18:22 | ||||
Мое мнение - не стоит разбрасываться. Доделай одно, потом берись за другое. Сужу по твоим постам в PHP разделе(отладчик, автозагрузка и т.д.) - т.е. пока еще любительский уровень.
![]() |
Автор: boostcoder 10.2.2012, 18:23 |
высокопроизводительный сервер с использованием http://www.boost.org/doc/libs/1_48_0/libs/asio/index.html и http://habrahabr.ru/blogs/hi/130113/. это из последних. |
Автор: bems 10.2.2012, 18:39 |
с целью понять откуда обобщение. Есть подозрение что ты судишь по себе. Я вот не злоупотребляю визуальностью, а среда никак мне в этом не препядствует. ну понятно ![]() хотя и тогда он небыл так коряв как плюсы Если ты имеешь в виду что дельфи не в моде, то да, большого смысла нет. Но это не свойство среды/языка, это рынок. Надеюсь не нужно доказывать что вера в "голосование деньгами" это всё равно что вера в деда мороза. Но даже при этой немодности, если найти своё место, то всё становится окей. А если ты говоришь не про рынок, а про сам язык, то смысла вагон и маленькая тележка. Сравнить хотябы порядок действий при создании объекта в дельфи и плюсах (совершенно шизофренический вариант). Смысл в том чтобы работать над решением задачи, а не заниматься борьбой со своим инструментом ![]() |
Автор: Gold Dragon 10.2.2012, 18:53 | ||
![]() ![]() С выбором я наверное определился... Наверное скачаю по учебничку "для чайников" по С++ и C# и ещё раз взвешу все ЗА и ПРОТИВ. И кстати, изучая несколько языков, можно находить интересные решения. В данном случае я встречал в PHP много интересных подходов которые приносили сишники. Может быть ещё и по этому мне почему-то хочется его изучать... tzirechnoy и bems, вы уж не расходитесь ![]() зы мне нравится учить что-то новое.. я бы вот с удовольствием занялся бы изучением китайского, но просто столько времени нет ![]() |
Автор: tzirechnoy 10.2.2012, 18:55 | ||||
И да "нормально" и "PHP" -- это оксюморон, конечно. Примерно как "нормально" и "как в винде". Добавлено через 1 минуту
Да мы уж практически всё выяснили, и остались при своих. Так что сам давай чего-нибудь этакого. |
Автор: Gold Dragon 10.2.2012, 18:57 | ||
boostcoder, ты привёл пример и я осознал фразу $дмитрий`я что с++ для выноса мозга ![]() Добавлено через 54 секунды
![]() |
Автор: newbee 10.2.2012, 19:02 | ||
И это... Если особо не заморачиваться и "жрать что дают", никакого выноса мозга не будет. |
Автор: boostcoder 10.2.2012, 20:41 | ||
это же прекрасно!
а это еще прекрасней! нужно будет менять профессию, когда программирование станет рутиной. это как заглядывать в раздел новичков. банально и скучно.. |
Автор: Gold Dragon 10.2.2012, 20:51 |
полностью согласен!!! ![]() |
Автор: vol4ek 10.2.2012, 21:13 | ||||||
Оконные приложения можно с легкостью делать и без Qt. С++ без сомнений рулит. А если кто владеет ассемблером для разумной оптимизации, то вообще - броня. Никакой Delphi и рядом не стоял. Добавлено через 4 минуты и 32 секунды + 5 Добавлено через 14 минут
* ржу_нимагу *
я на этом дерьме за пару часов сделаю приложение, на которое у Вас, наверное, уйдет пару дней. |
Автор: vol4ek 10.2.2012, 21:29 |
Учите С++. Лучшего языка нет. ![]() |
Автор: bems 10.2.2012, 21:38 |
практически любой лучше |
Автор: vol4ek 10.2.2012, 21:59 |
Чем ? Где? |
Автор: Absinthe 10.2.2012, 22:13 |
vol4ek, объясни мне, чем C++ лучше, чем Objective-C? |
Автор: boostcoder 10.2.2012, 22:13 |
тоньше нужно быть. тоньше! ![]() |
Автор: Gold Dragon 10.2.2012, 22:44 |
категоричность - очень плохое качество. Нет компромиссов - нет развития, а значит и будущего. ;) Просто некоторым не помешало бы быть сдержаннее в своих суждениях. По крайней мере в без обоснованных... |
Автор: 502 10.2.2012, 22:50 |
я за Nemerle, C++ вообще рядом не валяется ![]() |
Автор: tzirechnoy 10.2.2012, 23:20 | ||
Очень можэт быть. Такжэ вполне вероятно, что Вашэ приложэние на delphi будет дерьмом, в котором дажэ разобравшыйся человек ничего не изменит без глюков -- а моё стройной няшкой, добавить пару функцый в которую сможэт дажэ человек, который его только со стороны интэрфейса и виедл. А можэт быть и наоборот -- я на своём tcl/tk сделаю приложэние за пару часов, а Вы будете мучиться пару дней. При этом оба они окажутся образцом понятности и стройности кода. Или не оба. Или оба -- непонятности. Только вот все эти разговоры про личную крутость... Вам не кажэтся, что было бы более по-взрослому найти общественный сортир, зайти туда вместе и просто сравнить? Добавлено через 4 минуты и 18 секунд Кстати да, если erlang пугает синтаксисом, количеством библиотек или странными строками -- то есть вполне похожые на обычные языки современности nemerle и scala. |
Автор: bems 10.2.2012, 23:52 |
Это уже смотря какой конкретно брать. Каждый чем-то своим. чего? ![]() ну если бы я говорил о каком-нибудь другом языке, можно было бы отнести это на троллинг. Но речь про монстра, объем стандарта которого превышает "войну и мир". Тут и надпись на заборе смотрится более выигрышно ![]() |
Автор: vol4ek 11.2.2012, 00:06 | ||
никто не говорил, что будет легко ![]() "войну и мир" всю учить не обязательно. Просто нужно грамотно подобрать инструмент. Мне для windows вполне хватает одной MFC. ![]() Добавлено через 3 минуты и 39 секунд Да ну. Просто Вы так говорите... Как-будто визуальный редактор делали люди далекие от программирования. ( за 6 лет использования косяков не нашел). ![]() |
Автор: bems 11.2.2012, 00:28 |
в корявых плюсах есть некорявое подмножество? докажите ![]() |
Автор: boostcoder 11.2.2012, 00:31 |
ну вот, опять! |
Автор: bems 11.2.2012, 00:39 |
Andrew, не увлекайся излишним цитированием. Если нечего сказать, лучше промолчи |
Автор: vol4ek 11.2.2012, 00:41 |
корявых плюсах... Бустик, ну ты видел? Казнить, нельзя помиловать! |
Автор: boostcoder 11.2.2012, 00:42 |
bems, не льсти себе. ты не настолько незауряден. просто троллить перестань, а ;) |
Автор: bems 11.2.2012, 00:43 |
да что ж не льсти когда цитирования больше чем текста |
Автор: vol4ek 11.2.2012, 00:47 |
есть технологии API, MFC, ATL, COM. Владея одной из первых двух, можно писать программы практически любой сложности. Библиотека шаблонов STL очень облегчает жизнь. |
Автор: bems 11.2.2012, 00:54 |
API и COM доступны не только в плюсах. Апи так вообще чисто сишный. А вот от объектной модели языка дурно пахнет. порядок создания объектов наркоманский (определение by Newbie) Наличие множественного наследования. Рекорды структуры непойми зачем дублируют функциональность классов. Короче кладезь отстоя Добавлено @ 00:56 Она хороша. но в противовес ей есть помойные кучи вроде буста. Добавлено @ 01:01 Ой, я про препроцессор забыл. Как же без него родимого. |
Автор: vol4ek 11.2.2012, 01:14 |
ну да, куда делфям до этого. умирающий язык. |
Автор: newbee 11.2.2012, 01:15 |
Ну в этом то ничего плохого нет. Плохо, что работает оно через задницу, к которой пристраивается виртуальное наследование. О да, мы с бустиком целую неделю рожали функциональные OR и AND )) Ну хоть не WinAPI, уже не плохо )) Например си, который почти подмножество. Очень стройный, понятный язык, я считаю. Добавлено через 3 минуты и 10 секунд Маэстро, будьте так любезны, выкатывайте аргументы или посчитаю вас треплом! |
Автор: bems 11.2.2012, 01:22 | ||
в делфи ты можешь бросить исключение из конструктора, и это не вызовет проблем Можно вызывать конструкторы один из другого и для этого не нужны никакие особые "делегирующие конструкторы", притянутые в язык за яйца. Там вместо множественного наследования есть поддержка классом интерфейсов, как часть языка. Классы там более высокоуровневые чем записи (даже когда у последних есть методы). Там также доступны API и COM. Плюсы не нужны
![]() во-вторых чистый си хорош как замена асму. А когда начинает прикидываться ЯВУ, то ничего хорошего. И препроцессор опять же. Но по крайней мере он не монстр |
Автор: newbee 11.2.2012, 01:25 |
Написанное на Scheme не может не быть прекрасным! )) Добавлено через 3 минуты и 41 секунду Речи об области применения не шло вроде бы ;) Ты просил некривое подмножество. Конечно я слукавила, в некривизне си заслуга явно не за разработчиками с++ ) |
Автор: vol4ek 11.2.2012, 01:33 |
си хорош, но писать на чистом си это ведь для мазохистов. да и асм тоже. где же bsa... он бы вам про qt то рассказал. |
Автор: bems 11.2.2012, 01:34 | ||
|
Автор: newbee 11.2.2012, 01:35 |
vol4ek, таки трепло? |
Автор: vol4ek 11.2.2012, 01:36 |
по мне так mfc самое то. каркас сделал, контролы вкинул, обработчики написал и сиди довольный. |
Автор: newbee 11.2.2012, 01:36 |
Ну и хрен с ним, в сишных задачах его хватает. Это в плюсах хочется абстракций, вот и приходится плясать с бубнами. |
Автор: bems 11.2.2012, 01:37 | ||
в кути даже вс ё наследуется от одного базового класса. По сравнению с тем чтол есть в языке без кути это отлично. Но это заслуга кути а не с++ Добавлено через 56 секунд newbee, кабы он не мешал нормальной диагностике ошибок, я бы согласился Добавлено через 3 минуты и 55 секунд
|
Автор: vol4ek 11.2.2012, 01:44 |
каждому свое. Добавлено через 5 минут и 25 секунд Соглашусь, что в С++ есть проблемные места, где уже слишком мудрено. Однако и Delphi далеко не сахар. ![]() |
Автор: newbee 11.2.2012, 01:53 |
Предупреждай, когда в следующий раз будешь заниматься демагогией и газифицированием луж. |
Автор: bems 11.2.2012, 01:53 |
vol4ek, и опять из пустого в порожнее. В каком месте он не сахар? И почему я знаю плюсы лучше чем ты дельфи, но ты не стесняешься спорить на эту тему? ![]() В дельфи кстати тоже есть один, самый базовый класс, если что |
Автор: vol4ek 11.2.2012, 02:04 |
чтоб я спорил с комодератором раздела по Delphi.... Не позорьте вы меня. Почему же тогда рейтинг такой плохой? Добавлено через 50 секунд Идеальный язык, но выбирают почему-то другие |
Автор: bems 11.2.2012, 02:07 |
А вот это за пределами. Лови. |
Автор: volatile 11.2.2012, 02:09 |
Мне интересно, на паскакалевских форумах, много сидит си-шников, с упоением критикующих паскакаль? вместо "паскакаль" можно вписать любой другой язык. Почему С/С++ форум так притягивает иноверцев. Зависть? |
Автор: newbee 11.2.2012, 02:13 |
Кто иноверец? Я много писала и сейчас иногда пишу на с++! Тема то про выбор языка кстати, ну и что что в разделе с++. Еда! |
Автор: vol4ek 11.2.2012, 02:14 |
словил. имелось ввиду рейтинг языка. |
Автор: bems 11.2.2012, 02:14 |
то есть ты признаешь что это религиозный вопрос? ![]() во-первых я хожу в этот форум и когда ничего не пишу, потому что (как я тебе уже кажется говорил) мне приходится использовать и плюсы, когда пишу кернелспейс-код. Правда эти плюсы больше похожи на чистый си, и совсем чуть-чуть классов. во-вторых мне нравится спорить, особенно когда соперник знает о чем говорит. Сегодня это был не тот случай, к сожалению Добавлено через 1 минуту и 27 секунд тогда я погарячился. исправил бы, но с этим уже позно |
Автор: vol4ek 11.2.2012, 02:18 |
разрулим как нибудь. http://www.xakep.ru/post/51287/ |
Автор: bems 11.2.2012, 02:20 |
vol4ek, во-первых я выше уже говорил что я думаю про связь качеств языка и его рыночной успешности, поищи. во-вторых рейтинг ниже чем у плюсов, но не низкий по сравнению с кучей других в-третьих там и плюсы не на первом месте уже давно Добавлено через 1 минуту и 41 секунду поздравляю, пехепе лучше плюсов ![]() |
Автор: vol4ek 11.2.2012, 02:27 |
бросайте делфи и плюсы, учите пехепе |
Автор: newbee 11.2.2012, 02:39 |
vol4ek, я тебе уже в репу писала, но ты видно не понял... Умей признать свое поражение и свалить из топика пусть и не с высоко поднятой головой, но хотя бы не оплеваной. Не поясничай. |
Автор: bems 11.2.2012, 02:45 |
Вощем резюмируя тему, ответ: другой. На дельфи не настаиваю, есть много других хороших языков, но С++ не в их числе. Пойду я. |
Автор: Absinthe 11.2.2012, 07:13 | ||||
Кстати я думаю, что первую десятку популярных языков выучить определенно стоит. По штуке в год хотя бы. А там и C++, и C#. |
Автор: Gold Dragon 11.2.2012, 09:02 |
ну и войну вы тут развели ![]() Absinthe, не передергивай. Я по моему и просил указывать на то что я умею или не умею. Тебе не кажется что ты малость на личность переходишь? Даже религиозная война которая тут развернулась и то в пользу моего вопроса, становится видно слабые и сильные стороны того или иного языка. А что касается что было заимствовано PHP из С, то просто почитай документацию по функциям, там иногда встречаются такие фразы типа "..было заимствовано из С..". Я не знаком с С, по этому не могу доказать или опровергнуть эти фразы. В общем мой выбор колеблется между C# и Delphi. Всем спасибо за мысли, суждения, ругательства и упрёки ;) Оказывается в этом разделе достаточно горячо ![]() Тему можно закрывать, пока религиозная в гражданскую не перешла ![]() |
Автор: bsa 11.2.2012, 09:47 | ||
А что я? Мне деньги платят за программы на ассемблере, вообще-то. ![]() Я вообще плачу, что у меня нет возможности использовать хотя бы C - те компиляторы, который мой проц поддерживают, генерируют такой код - просто ужас. Добавлено через 12 минут и 11 секунд Ты помнишь, наверное, что оба этих "языка" работают только на одну платформу? На счет рейтинга. На мой взгляд рейтинг составлен неверное. Зачем было в одну кучу пихать языки для создания разного типа приложений? Лучше бы разделили на: embedded, desktop и web. Потому что я очень сомневаюсь, что программы для Android и iOS пишут на PHP. |
Автор: Absinthe 11.2.2012, 10:23 | ||||||
А потом этот ###код не исправляли, чтобы не сломать обратную совместимость.
|
Автор: Gold Dragon 11.2.2012, 11:23 | ||||||
![]()
Вот если честно, то я как-то очень критично отношусь к обратной совместимости... Бесконечно поддерживать срарьё просто не хочется.. Достаточно разработать" конвертер".. А что касается заимствования, тут тоже не всё так просто.. Я не думаю что команда PHP брала или искала худшее решение. Хотя могу согласиться с тобой, что некоторые решения ошибочны.
![]() ![]() PS а вот рейтинги - это всё настолько условно, по крайней мере большая часть.. Есть такая фраза: "Если тебе не нравится гороскоп на сегодня, то просто прочитай другой" |
Автор: borisbn 11.2.2012, 17:28 | ||
Единственный рейтинг, на который стОит обратить внимание - это количество вакансий и зарплаты программистов для разных ЯП. Если же выбираешь чисто для себя... поиграться и бросить, то рейтинги действительно нафиг не нужны. Можно даже наоборот в качестве эдакого challenge'а выбрать что-нибудь из нижней части рейтинга... |
Автор: Gold Dragon 11.2.2012, 17:44 |
очень важен регион и страна ![]() |
Автор: de_Nis 11.2.2012, 21:18 | ||
Наверное, ты давно использовал Дельфи. Потому что литературы ни по последним, юникодным, версиям Дельфи (а это Д2009, Д2010, ДХЕ, ДХ2!!!!), ни тем более по последним технологиям (FireMonkey) практически нет. Можешь посмотреть об этом тему http://forum.vingrad.ru/forum/topic-345446.html на подфоруме дельфистов. В отличие от Дельфи для С# море литературы по последним версиям языка, фреймвока, по любой технологии (в том числе и на русском языке). Имей это в виду, если не хочешь, чтобы твое обучение превратилось в бесконечные поиски ответа на любой вопрос на многочисленных форумах Дельфи (ты прав, что "...сообщество большое..."). |
Автор: tzirechnoy 11.2.2012, 21:35 | ||
Как раз количество вакансий -- малоосмысленный показатель. Если есть миллион вакансий, и два миллиона претендентов -- то проблем с поиском работы будет гораздо большэ, чем если есть пятьсот вакансий и двести претендентов. |
Автор: borisbn 11.2.2012, 21:46 |
tzirechnoy, количество претендентов-программистов в определённом регионе - более или менее константа, так что в Вашей формуле этим можно пренебречь ![]() |
Автор: mes 12.2.2012, 01:19 | ||
она хороша ? она отвратительна! единственное успокоение, что на время ее создания она действительно была революционной ) |
Автор: bems 12.2.2012, 01:59 |
а чего с ней не так? |
Автор: newbee 12.2.2012, 10:50 |
Она не заставляет писать на С++ на другом языке. |
Автор: mes 12.2.2012, 11:23 | ||||||
(речь о С++ стл, не о С++11 стл) нее.. есть конечно в ней и приятные моменты, например контейнеры, правда не все распространненные структуры отражены.. стд::стринг уже начинает показывать себя с криворукой стороны.. а алгоритмы! ради них впрочем и затевалась стл, это же неповоротливые творения, требующие кучу дополнительного кода для работы.. так мало требовотельности к доп.коду, еще из-за монотоности повторения, зачастую не видно опечаток... чуть болеее менее сложная задача, и код с чистым использованием алгоритмов, превращается в кашу.. чтоб избежать приходится отвлекаться на стороние вещи.. именно это и вызывает ощущение "мурашики по кожи".. Добавлено через 12 минут и 40 секунд для примера возьмем одну из не так давних тем : http://forum.vingrad.ru/forum/topic-345950.html вот как выглядит код для стл поиска по выборчному поиску по массиву структур :
и при этомруки все равно связаны :
а в С++11 это решается элементарно :
при этом условие поиска сразу наглядно видно... еще бы не нужно было этой пары v.begin(), v.end() - и было б вообще замечательно ![]() http://liveworkspace.org/code/449b32a06af36e5f03da5a7fe92026b7 |
Автор: mes 12.2.2012, 11:38 |
естесственно не любимый многими буст я оставил за порогом... ведь в нем нет ничего полезно ![]() |
Автор: tzirechnoy 12.2.2012, 11:57 | ||
Я явно не пойду претендовать на должность PHP-программиста, а товарищ vol4ek -- не пойдёт пилирть линуксовое ядро. Кроме того, многие явно не претенденты на некоторые места, просто в виду отсутствия спецыфического опыта. |
Автор: borisbn 12.2.2012, 13:54 | ||
как аффтар реанимированной темы... тогда уж
кстати говоря, добавление auto мне даже больше нравится, чем лямбды |
Автор: mes 12.2.2012, 14:13 |
я на эту часть и не смотрел.. рассматривал лишь стльный алгоритм ![]() а auto вещь хоть и хорошая но к стандартной библиотеке отношения не имеет ![]() |
Автор: bsa 12.2.2012, 20:39 | ||
На мой взгляд, если претендентов больше, чем предложений, то большинство предложений будут моментально удовлетворяться. Останется висеть та часть, которая имеет неинтересное соотношение цена/требования. Естественно, что это все в случае больших чисел. Если же числа будут малыми (т.е. 10 к 20), то ты можешь хоть 100 000 з/п указать, но к тебе так и не придет лисп-программист, например, если во всей области их нет вообще. Да, рано или поздно, какой-нибудь Вася разучит этот язык пуская слюни на вакансию. Но висеть она будет долго. Поэтому, количество интересных вакансий в текущем населенном пункте (или в том, в который претендент готов ездить/переехать) является главным критерием. ИМХО. |
Автор: newbee 12.2.2012, 20:48 |
mes, ты либо нарочно передергиваешь, либо не понимаешь. Чем библиотека шаблонов (которая является лишь придатком к core language и никак не может его изменить) виновата в избыточном коде? Архитектурно она прекрасна! В многословности винить стоит лишь кривой базовый язык, и именно изменение базового языка позволило сократить запись в твоем примере. И лучше никогда не упомянай буст-ламбды в приличном обществе, за этот позор могут и в морду плюнуть. |
Автор: bsa 12.2.2012, 20:51 | ||
А было ли что-то лучше для C++03. |
Автор: bems 12.2.2012, 20:58 |
mes, если я с тобой соглашусь это будет еще одно подтверждение что плюсы - гoвнo. Ты вообще на какой стороне выступаешь? ![]() |
Автор: newbee 12.2.2012, 20:58 |
Не могло быть. А ты ешь тухлое мясо, если рядом нет свежего? |
Автор: boostcoder 12.2.2012, 20:59 |
по тем годам - просто великолепное творение! |
Автор: newbee 12.2.2012, 21:02 |
Костыль для хромого? |
Автор: boostcoder 12.2.2012, 21:03 |
неудачный пример) ты станешь изобретать велосипед, если уже изобретено все кроме колес? Добавлено через 1 минуту и 29 секунд блендер для домохозяйки. |
Автор: newbee 12.2.2012, 21:06 | ||
|
Автор: boostcoder 12.2.2012, 21:15 |
"изобретения" давинчи, тоже не могли быть реализованы в его время. но это не его вина - вина окружающего его мира. хотя концептуально, он все верно "изобретал". Добавлено через 2 минуты и 56 секунд с++ - замечательный ЯП. плохим его можно назвать только из-за его сложности. что субъективно, в принципе. поэтому, опять же - каждому свое ![]() |
Автор: newbee 12.2.2012, 21:26 | ||
Я не хочу в сотый раз писать о кривом, фактически нерасширяемом(!) и неисправимом в силу обратной совместимости дизайне С++. Когда язык постоянно вставляет тебе палки в колеса, ты можешь оправдывать это сложностью, я же привыкла называть вещи своими именами. |
Автор: boostcoder 12.2.2012, 21:29 | ||
поэтому, изобретения в кавычках. язык - это инструмент. возможно стОит задуматься о том, что ты им просто пользоваться не умеешь? или инструмент не подходит? или ты создаешь ситуацию, в которой пытаешься сверлить отверстие отверткой? зри в корень! Добавлено через 1 минуту и 3 секунды неужели так сложно отличить причину от последствий? |
Автор: bems 12.2.2012, 21:31 |
boostcoder, не, он объективно сложнее чем требуется для того чтобы делать все тоже самое. Объясни например почему нельзя без делегирующих конструкторов? |
Автор: boostcoder 12.2.2012, 21:35 | ||
чего нельзя?
"сложнее", в сравнении с каким ЯП? |
Автор: newbee 12.2.2012, 21:35 | ||
Бустик, вот опять ты меня неумешкой выставляешь. В теме, где я очень конкретно прошлась по кривостям плюсов, ты тоже отмалчивался и бросался общими фразами. Хорошо, я буду также.
Добавлено через 42 секунды Ну раз ты не постеснялся прилюдно задать себе вопрос, отвечай! Добавлено через 4 минуты и 11 секунд Мммммммм. Только если ты не безногий инвалид! Так вот оно в чем дело... |
Автор: bems 12.2.2012, 21:40 |
например нельзя вызывать конструктор из конструктора без того чтобы не создать еще один объект. да в том-то и дело, что каким угодно! ![]() Добавлено через 1 минуту и 46 секунд не ноги |
Автор: newbee 12.2.2012, 21:44 | ||
Метаформа сначала была о ногах, но мы то все понимаем... )) |
Автор: bems 12.2.2012, 21:45 |
объясни мне в чем я не прав |
Автор: boostcoder 12.2.2012, 21:46 | ||||
даже и не думал. эм.. в какой?
вот! вопрос "в корень"! - нет. я не жалуюсь.
знаю что нельзя. а почему - хз-хз.. почему? так выбирайте подходящий инструмент, если он есть. в чем дело? |
Автор: newbee 12.2.2012, 21:48 |
![]() |
Автор: boostcoder 12.2.2012, 21:49 |
потому что инструмент кривой? - отчасти. но инструмент делает то, для чего его создали. а вот почему его создали именно таким - это уже другой вопрос. |
Автор: bems 12.2.2012, 21:49 | ||||
ответ создателей плюсов на этот вопрос: "чтобы на этом месте можно было присобачить еще одну высосанную из пальца сущность - делегирующий конструктор"
Добавлено через 1 минуту и 10 секунд
неее. Как так полдучилось что он такой какраз можно понять. Эволюция она и ведет какраз к таким вещам. Но это же не отменяет результата, что получился жидкий кал. |
Автор: boostcoder 12.2.2012, 21:55 | ||
хотелось бы из первоисточника ![]() ессно. в комитете сидят дауны. и те, кто признает их экспертами - дауны в квадрате. ![]() тебе виднее, похоже. а создатели языка - дауны. |
Автор: newbee 12.2.2012, 21:55 | ||||
http://forum.vingrad.ru/index.php?showtopic=346611&view=findpost&p=2457210.
Добавлено через 1 минуту и 44 секунды
|
Автор: bems 12.2.2012, 21:58 | ||
Ну вот и ты это признал ![]() /thread |
Автор: newbee 12.2.2012, 22:00 |
Ладно, мальчики, вы как хотите, а меня спать зовут. Всем чао! |
Автор: boostcoder 12.2.2012, 22:00 | ||
говорить что авторитетные персонажи неадекватны - основная причина задуматься о говорившем. Добавлено @ 22:07 bems, newbee, скажите, почему вы думаете что ваши суждения правильны, а суждения разработчиков - нет? и, если вдруг, вы таки правы - почему ваших предложений в новый стандарт я не видел? ну, или, вы являетесь экспертами с++? ну, или, экспертами хоть в чем-нибудь? - то-то. поэтому ваша аргументация не может быть объективной. |
Автор: bems 12.2.2012, 22:13 | ||||
наоборот, именно поэтому она и объективна. Нам наплевать на дальнешую судьбу плюсов, поэтому мы с ними не цацкаемся. Добавлено через 26 секунд извиняюсь что говорю за двоих |
Автор: boostcoder 12.2.2012, 22:18 |
bems, когда станешь признанным экспертом хоть в чем-нибудь - дай знать. а до тех пор, твои суждения пусты. Добавлено через 21 секунду удачи! |
Автор: bems 12.2.2012, 22:21 | ||
Andrew, слив защитан |
Автор: boostcoder 12.2.2012, 22:29 |
слив таки защитан, саня |
Автор: bems 12.2.2012, 22:31 |
Откуда ты знаешь как меня зовут? ![]() шайтан ![]() |
Автор: serghd 12.2.2012, 22:37 | ||
даже не думай |
Автор: mes 12.2.2012, 23:35 | ||||||||
Так получилось, что написание стл влияло на формирование ядра языка...
хорошо что все алгоритмы итератор-, а не range-ориентированные? хороши bind1st и бинд2d ? достоточно ли функционала string ? а алгоритмы, действительно ли удобно их применять ? Но на момент написания это стл - вся эта неуклюжесть просто шедевр!
да С++ отвратителен, в нем много костылей, мало стройности.. Но это очень сильный язык, затмевающий многие другие языки.. но если я признаю что С++ плох, то это не значит что я согласен, что дельфи лучше )) Добавлено через 4 минуты и 42 секунды
Согласен, но я уже в одной теме спрашивал , а какой тогда выбрать ? чтоб он был на тех же платформах, императивный и статически-типизированный ? и при всем этом чтоб был свободный язык (а не связывающий по рукам, любымый многими бейсик) ![]() |
Автор: boostcoder 12.2.2012, 23:40 |
то-то ![]() |
Автор: mes 12.2.2012, 23:44 | ||
вас смущает название ? так это просто сразу не осознали что онотак естестественней, поэтому их потом дотиснули ![]() ![]() |
Автор: bsa 12.2.2012, 23:46 |
Что ты привязался к делегирующим конструкторам? Их раньше не хватало, поэтому добавили. Не нравится, не используй. |
Автор: mes 12.2.2012, 23:48 | ||||
хочу пример, если предложите такой же сильный инструмент ( и развитый (в плане стороннего кода) язык, перейду на него ![]() Добавлено через 6 минут и 7 секунд
вот еще один камень в сторону удачной архитектуры стл, благо буст заткнул эту форточку ![]() |
Автор: boostcoder 13.2.2012, 02:15 |
о чем речь? |
Автор: bems 13.2.2012, 02:16 | ||||||
![]()
я привязался не только к ним. Я еще привязался например к тому что в плюсах толком не отменить создание объекта. Выше в теме был мой пост на эту тему, и ничего конкретного я не услышал в ответ. Только два аргумента: популярность и "ты сам-то кто?". Ну а про делегирующие конструкторы я стал упрямо повторять чтобы вытрясти таки из кого-нибудь ответ. Не, без толку ![]() |
Автор: boostcoder 13.2.2012, 02:22 |
ответ, типа: сделай лучше. или: объясни комитету и разрабам что они все не так делают. ? а ты таки объясни. да так, чтоб они согласились. тогда я соглашусь с тем, что они дауны и с++ кал. |
Автор: bems 13.2.2012, 02:22 | ||
вот это?
на процентах 90 платформ на которых есть плюсы есть и паскаль ![]() Добавлено через 2 минуты и 12 секунд практически любой лучше. Мы идем по кругу. на кой мне это? лучше сменить разрабов вместе с языком и не придется нивчем убеждать этих людей ![]() |
Автор: mes 13.2.2012, 02:35 | ||||
позвольте узнать о каком таком особом синтаксисе идет речь ? раньше можно былп вызывать только конструктор предка, теперь и конструктор того же класса.. никакого синтаксиса не изменилось! в че пятость колеса ? хочу подробностей ![]() Представьте что никаких делегирующих конструкторов не добавили, а просто сняли запррет, на использование конструкторов своего же класса ![]()
как это не отменить? поста не видел, попробую найти.. |
Автор: boostcoder 13.2.2012, 02:35 |
нет. ты, обосную комитету и разрабам, и покажи как реализовать делегирующие конструкторы лучше. хотя бы для того, чтоб не махать грязными трусами, а взять и постирать ;) иначе, повторюсь.. это как-то...не солидно..что-ли. удачи! |
Автор: mes 13.2.2012, 02:37 |
а то что я сбежал с паскаля на С++ и ни за какие коврижки обратно ни о чем не грит ? Или думаете я мазохист ? |
Автор: bems 13.2.2012, 02:48 | ||||||
Не-не, не названием. Там вообще не должно быть никакого вызова конструктора. Я уже говорил: в моём языке работает вызов конструктора в любой точке другого конструктора, и путаницы с созданием другого объекта не возникает. Со списками инициализации то же самое - достаточно простых присваиваний по ходу конструктора. А вариант из пллюсов рабочий, но избыточный ну то есть можно кинуть эксцепшн, но результат не порадует. или с этим нет проблем? Добавлено через 4 минуты и 50 секунд
опять идем по кругу, ты мне уже желал. Сказать нечего, а очень хочется, да? ![]() ну это я не знаю что тобой двигало. Он императивный, свободный (вернее "и свободный тоже"), и компилится под кучу платформ. Может какие-то требования ты недоозвучил, и из-за них сбежал? |
Автор: boostcoder 13.2.2012, 03:05 |
субъективно. и под сомнением. скажи спасибо. отличная аналогий. когда все не так. хочется лучше, но ничего для этого не делая. |
Автор: mes 13.2.2012, 03:08 | ||||
Угу придрались к констуктору.. а ведь на самом деле в том, что в дельфи конструктор по сути является постконструктором ![]()
Если все типы полноценные, то никаких проблем) А если используете сырые указатели, то ССЗБ ![]() |
Автор: bems 13.2.2012, 03:08 | ||||
объективно. Можно сделать любую цепочку вызовов конструкторов, которую можно и в плюсах. А обратное неверно, то есть плюсы сакс. плохой аналогий, слюшай. Хорош туалетно шутит, или высказывайся по делу, или займись чем-нибудь более полезным. Добавлено через 6 минут и 25 секунд
![]() ну это не аргумент. Вызов конструктора создаёт объект. Ну а тело конструктора да, работает на полностью выделенном и проинициализированном нулями экземпляре. Но если оно не отработало, то объект считается недосозданным и автомагически вызывается деструктор (еще раз привет, плюсики)
Не только сырые указатели, а еще какие-нибудь хендлы, мало ли всякого о чем не знает стандартная библиотека плюсов. |
Автор: boostcoder 13.2.2012, 03:16 |
шуток не было. это первое. второе - для тебя и аргументы тебя не устраивающие - туалетны так что - снова под сомнением. ты либо объясни почему конструкторы должны работать как "в твоем" языке, либо объясни почему "твой" язык эталон. конкретики больше. пожалуйста. |
Автор: bems 13.2.2012, 03:22 | ||
та хватит повторять мне одно и тоже, промычи что-то внятное наконец.
Всё это я говорю уже не первый раз. Всё, надоело ходить покругу. |
Автор: mes 13.2.2012, 03:24 |
bems, чтоб голосовно не спорить о проблемах констукторов, давайте выберем какую нибудь простенькую, но интересненькую задачку и сравним решение на С++ (с нашей стороны) и Делфи (с вашей) ![]() |
Автор: boostcoder 13.2.2012, 03:25 |
bems, хватит повторять одно и тоже. объясни, почему конструкторы в плюсах должны работать как в дельфи? потому что тебе этого хочется? конкретно ты можешь ответить?! |
Автор: bems 13.2.2012, 03:29 |
почему голословно? я могу продемонстрировать кодом те особенности о которых говорю. Можно и задачу, но тут много зависит от задачи. Не сложно выбрать ее таким образом чтобы эти проблемы были незаметны. Но в повседневном кодировании же оно время от времени даёт о себе знать |
Автор: mes 13.2.2012, 03:30 |
boostcoder, я в какой то мере согласен с bems, в С++ иногда не хватает постконструкторов (которые к тому же могли бы быть виртуальными.. Чаще это ощущается при работе с ГУИ.. но по большей степени это относится к мелким неудобствам.. |
Автор: boostcoder 13.2.2012, 03:33 |
mes, я пытаюсь понять два момента: 1. почему конструкторы должны работать к в дельфи. 2. почему bems не обоснует эталонность своего "хочу". |
Автор: bems 13.2.2012, 03:33 | ||
|
Автор: mes 13.2.2012, 03:35 | ||||
я знаю о чем Вы говорите ![]()
Да я в приципе не про конструкторы, они лишь мелкие удобства... Я про сравнение языков на произвольной задаче.. |
Автор: boostcoder 13.2.2012, 03:38 |
mes, кстати, Ваш пример постконструктора: http://liveworkspace.org/code/8f3dbcca9aa81191df7be5a589cbd9f1 предеструктор реализуется еще проще. и вызываться будет автоматически. |
Автор: mes 13.2.2012, 03:42 | ||
1. не должны.. Но Дельфи-конструктор имеет некоторые удобные преимущества.. Только это не безопасность по исключениям.. Если в дельфийском классе использовать указатель и выделить ему в конструкторе рессурс, то он также заависнит в воздухе при исключении.. Разница лишь в том что использование указателей "скрыто" от пользователя.. Удобство заключается в частнсти в виртуальном конструкторе, В С++ же для этого используют паттерн конверт/письмо.. 2. имхо: Он видит преумущества дельфиского констуктора, в дельфийской модели, поэтому иные подходы вызывают некоторое непонимание их нужности, так же как у вас дельфийские подходы ![]() Добавлено через 4 минуты и 51 секунду но нельзя использовать (само-) создание объекта на стеке ;) по секрету: в дельфи тоже нельзя ![]() |
Автор: boostcoder 13.2.2012, 03:48 | ||
что и требовалось ![]() |
Автор: bems 13.2.2012, 03:48 | ||||||
Добавлено через 16 секунд ну способ вызова другого конструктора я еще могу назвать мелким неудобством. А случай с эксцепшном это конкретнейшая проблема. |
Автор: mes 13.2.2012, 03:50 |
поэтому и предложил сравить языки в действиии, а не сравнением конструкторов ![]() |
Автор: bems 13.2.2012, 03:55 | ||
Добавлено через 3 минуты и 24 секунды в прочем в три утра я уже готов признать что угодно... |
Автор: mes 13.2.2012, 04:02 | ||||
сорри, во первых ночь , во вторых года 4 не видел дельфи.. подзабылось ![]() В С++ создание объекта в куче "требует" использование указателя :
В дельфи, если мне не изменяет память, любой объект создается в куче, поэтому понятие указателя в данном вопросе не нужно... Добавлено через 1 минуту и 30 секунд
я увиливал ? я сказал, что объективно сравнивать языки по модели конструирования объекта лишино смысла ![]() |
Автор: bems 13.2.2012, 04:06 | ||
Короч случай с эксцепшном явно безопаснее в дельфи. Ну а то что постконструктор можно сделать в плюсах я не сомневаюсь. Введением еще пары каких-нит искусственных сущностей ![]() Спокойной ночи, винград |
Автор: Gold Dragon 13.2.2012, 08:36 | ||
почитав комментарии, не захочишь ничего учить ![]()
Самая нормальная мысль ![]() |
Автор: Alexeis 13.2.2012, 10:59 |
Ничуть не нормальная идея. С++ имеет стардарт, поэтому там можно определить рамки эксперимента. Delphi это удобен за счет множества комонентов и классов 3х сторон, которые могут как включаться в стандартную поставку, так и не включаться. Можно взять задачу которая уже решена полностью в некоторой библиотеке на Delphi, в этом случае решение будет состоять из одной строчки. Добавлено через 3 минуты и 3 секунды Сначала покажите честный С++ (не С) код преобразования строки в число. Мы все поржем, и дальше ни о чем больше спорить не будем. |
Автор: newbee 13.2.2012, 11:48 |
Нормально, абстрактно и расширяемо. Принципиально ничто не мешает доделать алгоритмы с индексаим (ты ведь это называешь рэньж-ориентированностью?). Ввести в язык нормальный конструктор без введения нового синтаксиса мешает кривой язык. Хз... Мне хватало. Тебе чего не хватает кстати? А вот напихай в нее всего-всего, всякие бустики оборались бы, что блоб. Хотя бустики не орут на С++, наверное съели бы. Заодно замечу, что ни стринги, ни стримы (о которых ты вспомнил где-то ниже), ни (скорее всего) бинды не являются частью STL! Я не агитирую за делфи, хотя архитектурно там все продуманее чем в плюсах во много раз. Вот ты сбежал с делфи, тебе чего в ней не хватало? Приключений на пятую точку? Какие из платформ тебе реально нужны? Именно тебе. Паскаль, C#, Java, внезапно С. Откуда такие требования кстати? Интерес к плюсам был вызван эйфорией от новой надстройки над надстройкой над ассемблером. Спустя годы люди, осознав, бегут на явы и сишарпы! Отток из С++ колоссальный, не будь миллиардов строк кода, нуждающихся в поддержке и развитии, бежали бы еще быстрее! При нынешних вычислительных мощностях где реально необходимы возможности С++ по производству высокоэффективного и не требовательного к памяти машинного кода в купе со всеми костылями этого языка? Уже сейчас все такие динамически типизированные и функциональные ерланги и специализированные лиспы и вообще безтиповые форты выигрывают в производительности в задачах, где правили балом С++ и С. Вообще, глядя на обрастание С++ фичами b новыми синтаксическими коснтрукциями, на то, к чему приводит нынешнее использование шаблонов, мне кажется этот язык скоро все прогрессивное человечество признает write-only, и он повторит судьбу перла. |
Автор: Gold Dragon 13.2.2012, 12:01 | ||
так это понятно ![]() |
Автор: borisbn 13.2.2012, 12:41 |
Есть такое предложение: давайте выложим сюда информацию о ЯП, которые используются в крупных фирмах. Только просьба давать "инсайдерскую" информацию, а не выуженную непонятно где в интернетах. У меня знакомый работает в Лаборатории Касперского. Они там "мозги" пишут на Си/Си++, а морду - на до-диезе. |
Автор: Alexeis 13.2.2012, 13:37 | ||
Распространненость не говорит о превосходстве того или иного ЯП. Если язык универсален, то он может быть более распространеным. С другой стороны новый специализированный язык может в 1000 раз лучше решать свой круг задач. Это будет сравнине теплого с зеленым. Например, сравните языки С и PHP . Не очень интересно сравнивать правда? Скажет ли распространность что о качестве языка в этом случае? Правильно сравнивать языки по качеству синтаксиса. Насколько легко синтаксис позволяет реализовать те или иные патерны программирования. Насколько легко допустить синтаксическую ошибку. В том смысле, что разные языковые конструкции должны быть визуально НЕ похожими, так чтобы синтаксическая ошибка кричала: "я здесь исправь меня!" Насколько легко допустить логическую ошибку. В том смысле чтобы реализация логики выглядела прозрачной и наглядной, чтобы ветвления/переходы/циклы/рекурсии и т.д. были очевидны. Насколько те или иные языковые конструкции могут эффективно реализовываться и оптимизироваться на существующих платформах(ме). |
Автор: borisbn 13.2.2012, 13:56 | ||
Я и не говорил о "превосходстве" языка. Я как раз хотел выяснить именно распространнённость. Думаю, это - не маловажная информация для новичков, т.к. если молодой человек выучит "новый специализированный язык" (читай сферический конь в вакууме) и не сможет найти работу, то ему будет плевать на "синтаксический сахар", эффективность этого ЯП и т.п., даже если он в принципе не даёт себе ничего отстрелить. |
Автор: mes 13.2.2012, 14:32 | ||||||||||||||
имелось ввиду не конечная задача, а создание некоторого решения которым в дальнейшем удобно пользоваться.. Кстати можно сравнить и готовые решения ![]()
для более удобных вещей есть boost.format кстати вот и задачка, по составлению (условного) форматера строки по неким правилам, как это будет выглядить в дельфи ?
![]() ![]()
Похожесть, непохожесть -дело вкуса и привычки.. Не должно быть лишней шелухиоотвлекающей от передаваемой мысли ![]()
абсолютно согласен
меньшая из необходимостей для десктопных приложений.. Первых двух пунктов вполне достаточно.. При этом если это инструментальный функционал, то сам может быть любой степени сложности, но пользование им должно быть наглядно ![]() |
Автор: Alexeis 13.2.2012, 14:41 |
borisbn, специализированный язык ты не сможешь изучить просто так в вакууме, без практических задач. С другой стороны изучишь жутко популярный язык С (его популярность выше чем С++), и вместого чтобы проект сделать за неделю/месяц будешь делать пол года, а потом когда попросят внести существенные изменения еще 3 месяца будешь копошиться и ловить все баги. 2й и 3й языки не так долго изучаются, чтобы заморачиваться этим вопросом. Как было в том мультике. Вот что я тебе скажу птичка! Лучше один день потерять, чтобы потом за пять минут долететь! |
Автор: mes 13.2.2012, 14:51 | ||||||||||
для сравнения приведу два fora :
с алгоритмами та же беда, постоянная пара v.begin(); it!=v.end(); мало того что отвлекает зрения и позволяет допусть опечатку, к тому же затрудняет во многих случаях эффективно и красиво реализовать алгоритм..
нет, пример чуть выше )
А кто предлагал напихивать в сам класс ? я б даже выкинул часть из того, что есть.. а по сути, что есть в стл ? чтоб нормально поработать с текстом ? даже разбить на слова и то проблема...
![]() Добавлено через 4 минуты и 20 секунд
будешь удивлена , но язык становится проще и удобнее ) Хотя да, та устаревшая часть языка, которою оставляют для совместимости, вполне спокойно может отойти в названную категорию ![]() |
Автор: newbee 13.2.2012, 15:07 | ||||||||||
Умничка, привел в пример, что до сих пор в С++ не было даже нормальной итерации по последовательностям. Библиотека алгоритмов опять сбоку, все что она могла предложить - std::for_each, который без лямбд был неюзабилен (очень ли большое влияние оказывала разработка STL на страуса?).
Меряться кто на чем пишет довольно мудная затея. Кстати, mes тебя просили из строки число, а не наоборот... Ну программирую я в основном на CL, фиг программист найдет на него вакансию. Тем более начинающий ОП. Добавлено через 2 минуты и 40 секунд
Добавлено через 4 минуты и 21 секунду
|
Автор: Alexeis 13.2.2012, 15:12 |
mes, ты показал преобразование строки в объект потока-контейнера строки. Чтобы преобразовать строку в число, нужно будет сначала строку поместить в поток, а потом из потока извлечь, причем при таком синтасисе придется объявить как переменную строки так и переменную числа, а также промежуточный объект потока в памяти. При этом скорее всего произведется операция выделения памяти в куче, а может и не одна. ![]() Это яркий пример того каким "удобным" может быть универсальный механизм и сколько гемора он может принести на самых элементарных операциях. А знаешь почему никто не париться по этому поводу? Потому что все же есть в языке С! Раз достал и заюзал. И типичные приложения на С++, на самом деле, преварщаются в жутких гибридов С и С++ где намешаны шаблоны вызовы С и все разбавленно препроцессором. По работе приходиться разделять программу на части взаимодействия exe и dll . Оба на С++, однако любая попытка произвести экспорт с использованием языка С++ приводит ко всякой чертовщине с памятью. Все работает корректно, ТОЛЬКО при импорте-экспорте на уровне языка С. |
Автор: mes 13.2.2012, 15:40 | ||||||||||||||||
ну так 98 года как никак ![]() ![]()
речь не была о расширении языка, всего лишь о написании алгоритмов в стиле когда вместо задания начала и конца, задавался бы диапазон..
вот кстати Alexeis, привел еще одну проблему со строкой... такая элементарная задача требует некоторого напряга..
ага, увы, так оно и есть.. хотя ничто не мешает использовать более удобную библиотечку ![]()
а зачем она там ? кроме выделенной памяти под строку, которая в любом случае выделится..
Это пример того что в 90х годах "уровень программирования" желал лучшего даже у профессоров ![]()
Первоначально это проблема объектников, позволяющих только имена С-стиля, которая обходится с помощью манглинга.. Вторичная причина наличия множества компиляторов и отсуутствие стандартизации на это дело... Ну в Дельфи для взаимодействия с другими объектыными модулями как происходит экспорт имен ? к примеру в той же длл, которая будет использоваться с екзешника написанного на другом языке/диалекте ? Добавлено через 5 минут и 8 секунд классы енумов вытеснят простые енумы.. Так что по сути никакой лишней сущности.. А констекспр давно пора, ты не представляешь как она разгружает некоторые логические костыли.... |
Автор: boostcoder 13.2.2012, 15:50 |
mes, их больше ![]() |
Автор: bems 13.2.2012, 17:21 | ||
А для случая когда и длл и экзе писаны на одном языке, как описал Алексей, есть bpl-пакеты с гораздо более широкой функциональностью чем простые дллки |
Автор: mes 13.2.2012, 17:25 | ||
а экспорт ? Добавлено через 2 минуты и 6 секунд
имеется ж ввиду импорт С-экспорта ? |
Автор: bems 13.2.2012, 17:29 |
оба это неправильная формулировка, но да ![]() |
Автор: mes 13.2.2012, 17:54 |
позвольте узнать каким способом дельфи позволит экспортировать две перегруженные функции ? |
Автор: bems 13.2.2012, 18:12 | ||||
|
Автор: mes 13.2.2012, 18:22 |
хорошее решение.. этого С++ не хватает тоже ![]() |
Автор: bems 13.2.2012, 18:24 |
в с++ бОльшая проблема - там про дллки знает не компилятор, а только линкер. Отсюда всякие либ-файлы, без которых вполне можно было бы обойтись |
Автор: mes 13.2.2012, 18:26 | ||
да при этом сделано специально... чтоб быть ближе к оси..сейчас вот ломают голову, как запихнуть модульность ![]() |
Автор: newbee 13.2.2012, 18:31 | ||||
![]() Потом их вытеснит что-нибудь еще и окажется через десять лет, что для описания простейшей сущности приходится сложить в нужной последовательности десять слов языка. |
Автор: mes 13.2.2012, 18:57 | ||
грубо : http://www.boost.org/doc/libs/1_48_0/libs/range/doc/html/range/reference/algorithms/introduction.html
ни слова не понял.. не переведете на русский ? Добавлено через 5 минут и 36 секунд кстати раз так сильно углублись в stl, то интересно как обстоят дела с контейнерами, потоками (вводом/выводом) , ну заодно как там с итерациeй (for) ? интересует как Delphi7 так и современный Delphi.. |
Автор: bems 13.2.2012, 19:07 |
в современной дельфи есть контейнеры на дженериках, конструкция for-in-do, потоки присутствуют, правда для стандартного (который stdin/stdout) ввода-вывода традиционно используется старый паскалевский стиль без потоков в дельфи7 из этого только потоки, и парочка самых простых контейнеров (без дженериков), но я собсно не понимаю при чем тут семерка |
Автор: mes 13.2.2012, 19:25 |
потому что 1. я сбежал с 7ки и интуитивно сравниваю именно с ней... 2. сравнение С++98 с Delphi-2010 не очень честное ![]() 3. согласен, что С++ на текущий момент немного отстает в развитии, и даже текущий С++11 лишь только начинает разгон... про современную, я так понимаю она "отражение" Delphi.net ? и еще хотелось бы еще увидеть пример for loop'a по контейнеру |
Автор: bems 13.2.2012, 19:38 | ||||
актуальная делва на две версии новее чем 2010
ну многое оттуда заимствуется, ну и что из этого? работает-то оно без дотнета ну например
|
Автор: newbee 13.2.2012, 19:43 | ||
STL предоставляет более обобщенные варианты, на их основе легко слепить те, что ты привел.
|
Автор: boostcoder 13.2.2012, 20:31 | ||
разные языки == разные создатели == разные идеологии. мне вот не понятно, почему в дельфи такой код не работает?
![]() |
Автор: bems 13.2.2012, 20:35 |
потому что в дельфи сдивиг это сдвиг, а остаток это остаток? ![]() |
Автор: newbee 13.2.2012, 20:37 |
Эх, бустик, бустик. Скатился до уровня vol4el, не ожидала я от тебя такого! |
Автор: boostcoder 13.2.2012, 20:39 | ||
этот, кстати, тоже не работает:
хотя в коде все правильно ![]() Добавлено через 1 минуту и 49 секунд если эту строку закоментить - все равно кучу ошибок выводит. Добавлено через 3 минуты и 28 секунд не ожидала безоткатных вопросов? почему код не работает?! |
Автор: newbee 13.2.2012, 20:52 |
Ни я, ни бемс не пытаемся повторить синтаксис коммон лиспа или делфи на си++. Мы оба не заинтересованные стороны, просто высказываем свое мнение, аргументированное, почему дизайн языка кривой, не синтаксис! Я прошу прощения, что говорю за двоих )) |
Автор: boostcoder 13.2.2012, 21:06 |
почему он кривой - говорили уже не раз. и не только в этой теме. да, порушив обратную совместимость, язык можно было бы упростить и улучшить. с этим никто не спорит. но вы наверняка понимаете, что это не будет. а почему, и в силу каких обстоятельств этого не будет - это совсем другой вопрос. я же, на протяжении всей темы, пытаюсь понять лишь одно: почему вы считаете что ваше "хочу!" - хоть какой-никакой аргумент? вы основной спонсор продвижения с++? вы создатель ЯП, который имеет возможность(во всех смыслах) переработать С++? вы авторитетный персонаж в IT сфере? на все вопросы ответ - нет. так чего вы разглагольствуете? все что вы можете, это выбирать! выбирайте! |
Автор: newbee 13.2.2012, 21:11 | ||
Добавлено через 38 секунд Я опять прошу прощения, что осмелилась говорить за двоих ) |
Автор: bems 13.2.2012, 21:15 |
всё правильно сказала |
Автор: boostcoder 13.2.2012, 21:23 |
сомневаюсь в том, что ваши доводы объективны и подкреплены хоть чем нибудь, кроме "хочу!"... Добавлено через 2 минуты и 58 секунд я мог бы согласится с доводами Саттера/Александреску/Майерса... но ваши...пфу... Добавлено через 4 минуты и 31 секунду вы в самом деле считаете себя компетентней членов комитета? доказательства компетентности, пожалуйста. иначе вы просто балаболы. |
Автор: newbee 13.2.2012, 21:28 | ||
|
Автор: bems 13.2.2012, 21:28 |
http://ru.wikipedia.org/wiki/Ad_hominem футакимбыть |
Автор: mes 13.2.2012, 21:29 |
не могли вы нас просветить, что такое стл ? |
Автор: newbee 13.2.2012, 21:30 |
Кстати решение ОПа показательно. Сначала склонялся в сторону С++, но увидив дикий слив его апологетов, сменил выбор - причем не услышав ни одного веского довода "за" то что он там выбрал. Добавлено через 1 минуту и 10 секунд Я могу во второй раз предложить RTFM. Это на каждом углу написано. STD-C++ != STL. |
Автор: boostcoder 13.2.2012, 21:33 |
ах ты эталон зрячести! |
Автор: mes 13.2.2012, 21:43 |
а Вы про это ) конкретизирую ответ на это чуть позже.. но все ж хочется узнать что именно входит в стл , если даже контейнеры с алгоритмами туда не входят.. ну ссылкой хотя бы, чтоб знал что именно то, о чем грите ![]() я так понимаю Вы о том, что после включения в стандарт библиотеки stl, то что включили и переработали перестало иметь права называться стл ? |
Автор: newbee 13.2.2012, 22:02 |
mes, я говорю о том, что сделал Степанов и еще какой-то мужик в рамках проекта STL. Его включили в стандарт языка и накидали еще всякого сверху, все вместе это называется libstdc++. Мне неинтересно говорить о всей стандартной библиотеке С++, я знаю концепции STL, частично я сними очень плотно работала, расширяла, где-то сокращала избыточный на мой взгляд синтаксис и могу со знанием дела сказать, что STL спроектирована великолепно - стройная библиотека над языком, никаких пионерских замашек вроде буста. Конечно в ней не хватает алгоритмов, я об этом уже десятый раз пишу, но алгоритмы дело наживное, а родовые травмы - навсегда. Что входит в состав STL можешь посмотреть на английской википедии, на сайтах с плюсовой документацией обычно тоже разделяют STL от остальной стандартной библиотеки. |
Автор: 502 13.2.2012, 22:33 | ||
почему? подключаем старый код как библиотеку и вперед ![]() |
Автор: bsa 13.2.2012, 23:40 |
серьезная часть старого кода может быть в хидерах. А они подключаются как есть. Поэтому порушив обратную совместимость можно будет подключать только библиотеки с сишным интерфейсом. |
Автор: Earnest 14.2.2012, 16:03 |
Потому что тогда будет всемирное восстание разработчиков ![]() ![]() ![]() В завершение (надеюсь) дискуссии, которую вы тут развели, лишенные моего чуткого присмотра ![]() Это все спор ни о чем. Потому что по сути он вкусовой. Язык С++ практически стал "естественным" языком, со всеми вытекающими из этого достоинствами и недостатками. Да, он местами сильно кривой, а некоторые конструкции просто чудовищны, но вместе с тем он прекрасен. Вопрос стоило бы задать по другому: за что вы "любите (не любите)" язык C++? Мой ответ таков: мне нравится С++, потому что он оставляет мне полную свободу: я могу сделать все, что хочу, на любом уровне, он никак меня не связывает, все правила и ограничения я устанавливаю сама. А к недостаткам я приспособилась и практически их не замечаю. Кроме того, он большой и дает много вариантов сделать что-то. Не нравится один - выбирай другой. Я с тошнотой вспоминаю программирование на фортране, паскале и дельфи. Более новые языки типа шарпа меня тоже не вдохновляют. Не вдохновляют и функциональные языки. Ну не нравятся и все тут! Тем не менее, я знаю, что есть масса людей, которых от С++ воротит, он оскорбляет их... ну скажем, эстетическое чувство (не могу сказать, ибо не разделяю этих чувств). Так о чем тут спорить? Просто не надо себя мучить. Не нравится С++ - пишите на дельфи или что там еще. Да хоть на коболе, любовь зла. В завершении хочу выразить свою благодарность всем участникам дискуссии за проявленную сдержанность (в смысле сохранения дружеского тона и неперехода на личности). Хотя честно сказать, всю тему ниасилила, пробежала по диагонали. Так что если есть какие-нибудь оскорбительные посты, могу почистить, если общество желает. ![]() ![]() ![]() |
Автор: newbee 14.2.2012, 16:21 | ||
Ни один язык не позволяет "делать все что хочу", даже экстра гибкие форты и лиспы. Но если ставить вопрос как "почти на любом языке можно решить почти любую практическую задачу", то это очевидно, я сразу в этом топике писала - "дело интимное, у каждого своя колокольня". |
Автор: Earnest 14.2.2012, 16:57 | ||
Ну да, нахожу другие способы. "Делать все что хочу" - это именно то, что сказано. Не в смысле решения задач, ибо тогда правильнее говорить об алгоритмах. И не в смысле "я хочу чтобы было написано (выглядело) именно так". Есть конкретные практические задачи - они решаются. Всегда, без всякого "почти". Тем или иным способом. Как правило, если есть смысл и желание напрягаться, удается найти изящный способ решения. Паскаль сковывал меня гораздо сильнее, про Фортран вообще молчу. Да-да, я понимаю, что кто-то сейчас скажет "а я на дельфи могу сделать все, что угодно". Ну и слава богу, он может на дельфи, а я на дельфи не могу, потому что буду плеваться и портить себе печень. Оно мне надо? |
Автор: boostcoder 14.2.2012, 17:05 |
[сарказм] да ты чо?! все должно быть именно так как ньюби и бемс говорят! ибо разрабатывают и стандартизуют язык дауны! а они эталоны! [/сарказм] |
Автор: Earnest 14.2.2012, 17:10 |
И они правы! С одним добавлением: "у них". Вот пусть и стараются. А у меня свое представление о мировой гармонии. Которое я никому не навязываю. Кроме своих сотрудников, конечно. Ну да такая уж у них горькая судьба. ![]() |
Автор: boostcoder 14.2.2012, 17:13 |
я им так и сказал: все что у них есть, это возможность выбора ![]() |
Автор: bems 14.2.2012, 18:20 | ||
![]() |
Автор: bsa 14.2.2012, 22:02 |
bems, я пишу на ассемблере. Я на нем могу сделать почти все что угодно в пределах возможностей аппаратуры. Но меня убивает тот факт, что при смене железа все придется переделывать. Именно поэтому, под полноценные платформы пишут на языках высокого уровня. |
Автор: borisbn 14.2.2012, 22:08 |
А остались ещё "неполноценные" платформы, где нет Си (ясно, что дельфями там и не пахнет) ? Если же ты хочешь сказать, что на некоторых платформах асм эффективнее, чем Си, то спорить с этим глупо... |
Автор: bems 14.2.2012, 22:14 |
bsa, я в курсе что есть люди, которые на нем пишут. Моё высказывание нужно смотреть в контексте. Я имел в виду что требование "делает всё что надо" довольно таки слабое требование, потому что и асм это делает. А ЯВУ да, используют по тем причинам что ты и говоришь, но при чем С++ к ЯВУ? ![]() |
Автор: bsa 14.2.2012, 23:14 | ||
bems, я и сам не понял, причем тут Java. Я имел в виду, любой язык, который позволяет писать программы, не завязанные жестко на используемую платформу (читай кроссплатформенность на уровне исходных текстов).
Есть такой знаменитый на весь мир процессор - Zilog Z80. Под него нет нормального компилятора С, из живых только sdcc. Но его результирующий код ужасен (с точки зрения производительности и объема). Я готов бы пожертвовать 10% и того, и другого, но не 100-200%. |
Автор: newbee 14.2.2012, 23:23 | ||
1. Я в этой или какой-либо другой теме высказывалась о том, как должно быть в С++? 2. Ты умеешь читать? 3. Ты очень устаешь на работе? Не знаю, вернется ли сюда мес, может с ним потолкуем, но с тобой дискусс завязываю и подытоживаю свое видение основного сабжа темы: ОП пришел с вопросом "учить мне С++ или что-нибудь другое?", в ответ получил размазанный по топику ворох косяков языка (с которыми можно мириться, которые можно называть фичами, которые можно научиться интуитивно обходить и не замечать, но они есть и никуда не денутся - это не секрет ни для кого в CS и индустрии вообще, и только сектанты продолжают молиться богам С++а), адекватной, объективной и аргументированной защиты никто не построил... все ограничились ссылками на авторитетов, один ссылался на bsa, другой на заседателей палаты сей и плюсов. |
Автор: mes 14.2.2012, 23:48 |
вернусь, но не сегодня ![]() для прекрасных Earnest и newbee аппловская валентинка : ![]() |
Автор: rumit7 14.2.2012, 23:57 | ||
Классно сказано! Спасибо! И всё что я сам чувствую, вот только не мог подобрать слова, чтобы высказаться здесь в защиту С++! |
Автор: bems 15.2.2012, 00:09 | ||
ЯВУ это Язык Высокого Уровня, боже ж ты мой
![]() |
Автор: rumit7 15.2.2012, 00:25 | ||||
Про тошноту я ничего не говорил. Инженерных мыслей я в этой ветке не заметил. А Вам есть чем заняться, кроме как провоцировать людей на ###срач? |
Автор: boostcoder 15.2.2012, 00:37 |
инженерные мысли могут быть у mes, xvr, Earnest, bsa, azesmcar, и еще у кого-то, кого наверное забыл.. т.е. у тех, что хорошо владеет языком. это как если бы я полез в ветку дельфистоф, и начал срач о том что в дельфи все не так как должно быть. и на мой вопрос, почему в дельфи не компилируется понятный для меня код - я ответа так и не получил. |
Автор: bems 15.2.2012, 00:49 | ||
не говорил так цитировал с одобрением. "а они есть!" (с) ![]()
|
Автор: rumit7 15.2.2012, 01:19 | ||||
Для любителей говорить по делу отмечу, что ТС еще 11-го числа выразил следующую мысль:
На дворе 15-е. А желающие продолжить бесполезный треп все продолжают провоцировать.. |
Автор: bems 15.2.2012, 01:21 | ||
|
Автор: boostcoder 15.2.2012, 01:32 |
rumit7, ну ты хоть не ведись на его глубокоосмысленные вопросы ![]() |
Автор: proftpd 15.2.2012, 06:12 |
Модератор: Сообщение скрыто. |
Автор: borisbn 15.2.2012, 08:43 | ||||||
О каких "инженерных" мыслях вы говорите ? Я вижу только две
Инженерная мысль это когда ты оцениваешь задачу, придумываешь алгоритм, выбираешь средство (может вообще не нужно программировать, а можно скачать и установить готовое), которое лучше всего подходит под задачу и которое лучше всего знаешь, и в срок и качественно эту задачу решаешь. И точка. Если же кто-то не может отличить оператор вывода в поток от оператора сдвига, и считает, что это - из-за кривизны языка, то ИМХО язык тут совершенно не при чём. Если же кто-то считает, что наличие во всех классах, наследованных от TObject, функции-члена с зарезервированным названием Create, которая вызывается из скрытого конструктора по-умолчанию, и также может быть вызвана в любом другом месте, так вот, если кто-то считает, что в этом прелесть языка, а её отсутствие - кривость, то это тоже не инженерный подход. Делай в своих Си++-ных классах такую же функцию и вызывай её когда хочешь. Кстати про конструкторы, которые не конструкторы, как-то нарвался в C++ Builder'е на такую проблему
из конструктора базового класса вызывается Deriv::foo(), хотя объект только начал создаваться и m_ptr ещё никуда не указывает. Интересно, в дельфи такая же проблема, или это - плод перевода VCL на плюсы ? |
Автор: mes 15.2.2012, 10:01 | ||
плод адаптации.. при том, насколько я помню, билдер имеет два поведения, для vcl-объектов, виртуальные функции в конструкторе виртуальны, для остальных, обычны.. |
Автор: borisbn 15.2.2012, 10:05 | ||
Подтверждаю. Проверял. Т.е. в дельфи из базового конструктора не вызываются виртуальные ф-ции наследника ? |
Автор: Earnest 15.2.2012, 10:17 | ||
В том-то и суть, что здесь дело именно в чувствах. Есть люди, которым C++ нравится, несмотря нанедостатки, и есть те, которым он не нравится. О чем тут спорить-то? Что на С++ нельзя чего-то написать? Чушь, сам понимаешь. Что какой-то код на С++ может не нравиться? Ну и ради бога. Мне вообще практически ничей код не нравится, даже свой, но написанный давно. ![]() ![]() Претензии все какие-то забавные: я, дескать, считаю, что конструкторы должны быть устроены вот так, потому что это очевидно, удобно и понятно. А на самом деле это просто импринтинг - к чему привык, то и кажется удобным и очевидным. Мне вот очевидно, что существительные должны склоняться, а для глаголов вполне хватит 3 времен. А в английском существительные не склоняются, зато времен 36. Вот уроды! ![]() ![]() ![]() Может, закроем тему-то? Говорят, автор уже сделал выбор... |
Автор: mes 15.2.2012, 10:37 | ||
вызывыаются, но конструкторы дельфи имееют сильно отличное поведение от С++-конструкторов, и в двух словах не передать их идеологии.. |
Автор: bems 15.2.2012, 21:59 | ||||||||
потому что это один оператор
да не, потому что я могу на дельфи написать такую последовательность вызовов, которая непредставима на плюсах (ну можно наделать дополнительных функций чтобы было похоже, но ясно же что это не то) вообще да, кто надо всё понял как надо, пока я пошел. Только вот дождусь завершения с Борисом |
Автор: borisbn 16.2.2012, 09:09 | ||||
0 - такое же число, как и все остальные. Только для указателей он показателен. Хорошо. Другой пример
немного надуманный, но, думаю, понятно, что я хотел сказать. С другой стороны, если в спецификации языка чётко сказано, что в конструкторе (или как он называется в дельфи) базового класса м.б. вызвана ф-ция наследника, и ты всё равно делашь, как в примере - то сам дурак. А если ещё утверждаешь, что это - "кривость" языка, то это уже не лечится. Повторюсь - для меня важнее, чтобы задача решалась. Не задача программирования (сделать такую-то конструкцию, вызвать конструктор и т.п.), а задача из предметной области. Если она лучше решается на Си++ - я её буду делать на Си++. Если лучше на дельфи - буду делать на дельфи (пока, кстати, такого не было). Не так давно пришёл к нам молодой программист. Знает и плюсы и до-диез Я ему поставил задачу сделать одну программу. На плюсах. Он сделал на плюсах за две недели и с 10-ю cpp-шниками. Затем он не переписал её на до-диез. Заняло это 3 дня и пару исходников. Спрашивается - нафига я ему говорил писать на плюсах ??? Сам дурак. ![]() А вообще - поддерживаю, что трёп пора прекращать. |
Автор: boostcoder 16.2.2012, 09:21 | ||
фигасе. а енто как? ![]() тогда кто из них базовый? или наследуются только методы, а конструкторы по сути, простые методы? и после этого "они" говорят что С++ плохой яп? ![]() |
Автор: mes 16.2.2012, 09:35 |
ну вначале в конструкторе наследника инициализируешь все данные, потом вызываешь конструктор базового, в котором вызывается виртуальная функция, которая пользуется данными наследника ![]() |
Автор: boostcoder 16.2.2012, 09:57 | ||
ни пришей пи.14 рукав, это называется! ![]() теперь становится смешно от того, насколько это не костыльное решение ![]() |
Автор: borisbn 16.2.2012, 10:35 |
boostcoder, выход-то простой: просто не называй это - конструктором. Называй это просто функцией базового класса. Она-то имеет права лазать в наследника... И потом, это поведение чётко описано в документации. |
Автор: boostcoder 16.2.2012, 10:36 |
а кто эту функцию вызывает? какие-то скрытые от программиста механизмы? |
Автор: mes 16.2.2012, 10:51 | ||||||
какую функцию ? дельфи-конструктор ? программист при создании объекта, в конструкторе же сам устанавливает порядок вызовов конструкторов предков.. можно хоть в цикле 100 500 раз вызвать конструктор предка, если требуется ![]() и.. в конструкторе данные не инициализируются, а присваиваются ![]() и еще объекты все создаются в куче, а на стеке записи - никаких лишних сущностей ![]()
покажите такой пример ![]()
я надеюсь при анализе примера будем смотреть на суть происходящего, а не на условные названия, различные для каждой идеологии.. ![]() |
Автор: boostcoder 16.2.2012, 11:08 |
так у него еще и собственное название.. ![]() |
Автор: mes 16.2.2012, 11:48 |
нет, я просто так выразился о конструкторе в дельфи ![]() |
Автор: borisbn 16.2.2012, 12:53 |
Народ! http://machinegestalt.posterous.com/if-programming-languages-were-cars ![]() |
Автор: spyswamp 17.2.2012, 15:02 |
17 страниц Специальной Олимпиады. ![]() |
Автор: bsa 17.2.2012, 16:34 |
spyswamp, это ты зря. В каждой отрасли есть подобные споры. ![]() |
Автор: WERITAS 16.2.2016, 13:27 |
скорей везде есть люди, жаждущие подбросить гонва на вентилятор |
Автор: borisbn 22.2.2016, 09:06 |
WERITAS, ага. Ровно через четыре года )) |