Вы не вошли.
внезапно, существует стандартизированный char*.
Да, есть. Но это стандарт на уровне каменного века (я уж не буду объяснять чем он плох - сам понимаешь, если не дурак), именно поэтому и делают свои строки кто во что горазд. В результате, что там между языками, даже среди разных библиотек на одном и том же С++ не обменяться. И это еще только строки! А ведь есть еще массивы, и мн. мн. др.
Куда там до классов.
"Фу бля, крохобор вонючий" (с) Svart Testare
Вне форума
Пожалуйста, читайте тему. Прочитай мое сообщение номер #38 на 2-й странице и следующих 2 сообщения.
Я читал тему.Вы там только про cpp.
А есть ведь типобезопасные языки с тем же сборщиком мусора, компилируемые в натив.Я про них)
Анархия-мама сынов своих любит
Вне форума
Хм, а что не так в нативе-то?Скрость, да? ж)
Нет, плохая стандартизированность типов. Точнее, вообще почти никакой. См. пост 68. А также - отсутствие сборщика мусора, ну и вообще пора бы уже перейти на более высокий уровень. Не для всех задач, ессно, но для прикладного-то уж точно.
Вы не за то их боготворите.Они вклыдывались , в том числе, и в очень интересные инструменты.Вроде GHC.
Чувак, выбирай выражения. Я их не боготворю, просто заявляю, что они сделали классную платформу. При этом у них куча косяков в других местах, но дотНет - реально, вещь.
Если я правильно понял насчет GHC - не в курсе про него, знаю только, что ихний F# сделан как калька с Окамла. А что до Хаскеля - одним языком больше, одним меньше... А тут платформа целая
!
"Фу бля, крохобор вонючий" (с) Svart Testare
Вне форума
Плодить статические классы по одной функции в каждом
Почему по одной. Заводится один класс (ну или несколько) и всю такую дребедень туда кидать. А потом подключать где надо.
Зачем мне втыкать в чужой код? Я не очень тебя понимаю)
Пример.
Я вижу код, который написал коллега, в котором String s[] = {"aaa"};
List<String> list = s.convertToArrayList();
Я недоумеваю, что за хрень? В массиве нет такой функции. Где эта функция? Для того, чтобы в это вникнуть, нужно какие-то усилия. Насколько большие - не знаю, но нужны. Я про это.
Стандартная библиотека позволила забыть про ммап вс. рид, работу со строками, классы коллекций - нет. Чет меня гложит, что и тут так будет.
Коллекции-контейнеры - в целом да. Если не нужны какие-то извраты. Даже хэштаблицы по факту везде есть. А зараз и в стандарте будут.
Строки - должны быть частью языка (ихмо, вместо убогих char*). Тут проблему не решить. Но! Возможно (не уверен), по новому стандарту std::string является plain-old object и тогда различия "почти" стираются. Почти - потому что char * будет торчать изо всех дыр, поддержки юникода пока негусто в stdlib, создать из строкового литерала на рантайме string без копирования данных невозможно - создание будет небесплатным.
насчёт IO - это стандартная библиотека и так будет всегда. Классов по работе с memory-mapped вроде не замечал (хотя может и есть уже в std). Энивэй - это всё библиотека. Если не нравятся предлагаемые интерфейсы - тогда беда, нужно или врапперы писать или на голом системном апи или стороннее что-то искать.
Тут стандарт нужно фтыкать - оправдаются ожидания или нет.
В целом, мне интерфейсы C++ нравятся меньше. Топорности и незавершённости при охрененной и охрененно ненужной гибкости там больше. Банального split для стрингов там нет.
Вроде бьерн говорил, что будет... Ы-ы...
Я видел где-то, что этот техникал пропозал отложат в связи с тем, что 0X уже закончились давно, а так и до 0x0F не успеют.
И если бы не она, этих инструментов бы не было.
По такой логике
Не соглашусь с такой логикой. Майкрософт безусловно хороша в заимствовании инноваций. Полностью своих у них немного. Стоит раскрыть глаза - и можно увидеть, что без MS мир ничуть не тусклее и не менее беден инструментами для программера. Насчёт фреймворка - Java. Разница - в подходе и кол-ву и направленности синтаксического сахара. Принципиальной разницы нет. Дотнет создавался именно как "своя ява". Если я ошибаюсь, а вы знаете линки, которые это могут опровергнуть - вэлком.
То есть, если бы не "вся эта дотнетная мишура", мы бы до сих пор трахались с нативным кодом.
Жава была уже с 95 года. Никто бы не трахался в нативным кодом. Просто доля жабы в энтерпрайзе была бы выше.
Ну и Java != Unix 
В библиотеках там все, но оно все нифига не стандартизировано.
C++ в отличие от C# стандартизирован ISO, вместе со стандартной библиотекой 
Насколько хороша библиотека - мнения разходятся. Поэтому и появляются велосипеды типа:
в Qt другие,
друг другу невозможно ничего передать сложнее чисел и указателей на неизвестно что.
А так было, есть и будет. Потому что даже при одном и том же API - ABI никто не стандартизует. Для свободы выбора реализации под разные платформы. То, что вы предлагаете - это отказ от этой свободы в пользу простоты нативного связывания библиотек на разных языках.
внезапно, существует стандартизированный char*.
А юникод, а? 
А есть ведь типобезопасные языки с тем же сборщиком мусора, компилируемые в натив.Я про них)
А нет таких языков со скоростью даваемой С или С++. Только если в каких-то аспектах. Если бы были, то на них бы аццко-переходили. Что и видно на python ruby - у которых именно что проблемы со скоростью. почему они и не заменяют.
Понимаешь, в чем дело. когда мы доходим до этого уровня все равно нужен еще один уровень абстракции, который есть в виде java, .net, llvm.
Поэтому если брать отдельные нативные языки, то в отдельных вопросах работать с ними можно. А в общей интенграции - не удобно. ,Иначе мир бы не был таким, какой он есть сейчас.
Квантовая механика - "малопонятный математический курьёз" (с) msAVA - современный учитель.
Вне форума
А нет таких языков со скоростью даваемой С или С++. Только если в каких-то аспектах. Если бы были, то на них бы аццко-переходили. Что и видно на python ruby - у которых именно что проблемы со скоростью. почему они и не заменяют.
Ocaml, местами haskell(если аккуратно пользоваться штуками вроде foldl')
Понимаешь, в чем дело. когда мы доходим до этого уровня все равно нужен еще один уровень абстракции, который есть в виде java, .net, llvm.
Не всегда.
Чувак, выбирай выражения. Я их не боготворю, просто заявляю, что они сделали классную платформу. При этом у них куча косяков в других местах, но дотНет - реально, вещь.
По концепции - та же ява, только в профиль - несколько компиляторов в байт-код и вм.Ну и доступность классов из любого языка и места.
Анархия-мама сынов своих любит
Вне форума
Почему по одной. Заводится один класс (ну или несколько) и всю такую дребедень туда кидать. А потом подключать где надо.
Да нет, иначе это будет класс - помойка. Иногда такое можно, конечно, какие-нибудь HtmlHelpers. Но тут еще один минус появляется, когда есть такой отдельный класс - про него надо знать. И вот тут-то и появляется втыкание в чужой код.
Я недоумеваю, что за хрень? В массиве нет такой функции. Где эта функция? Для того, чтобы в это вникнуть, нужно какие-то усилия. Насколько большие - не знаю, но нужны. Я про это.
Ну вообще, обычно в этот момент у тебя открывается автокомплит с описанием функции. Я и говорю, часто пользуясь чужими библиотеками читаешь доки, только чтобы не охуевать от собственной наглости. У C# ведь и с автоматической (втсроенной) документацией, которая идет вместе с библиотеками - все нормально. Смотрите:
msdn.microsoft.com/en-us/library/b2s063f7.aspx
Квантовая механика - "малопонятный математический курьёз" (с) msAVA - современный учитель.
Вне форума
я тебя предупреждал, что ни одной аргументации с его стороны не будет
Какая может быть аргументация в ответ на рекламу дотнета и попытки утопить всё вокруг в каких-то частных примерах, кажущихся вам чудесными и сверхудобными? Хватит уже на своем велосипеде- "иномарке" с рекламным щитом дотнета воздух сотрясать.
.:``́3̶E̶P̶O̶W̶h̶`́`:.
Вне форума
Ocaml, местами haskell(если аккуратно пользоваться штуками вроде foldl')
Ну вот в том и дело, что местами. Эх...
К слову о Ocaml смотри F#)))
Квантовая механика - "малопонятный математический курьёз" (с) msAVA - современный учитель.
Вне форума
Ну вот в том и дело, что местами. Эх...
Копмилятор, не без участия МС кстати, активно допиливают.
К слову о Ocaml смотри F#)))
Он медленнее.
Анархия-мама сынов своих любит
Вне форума
Копмилятор, не без участия МС кстати, активно допиливают.
Ага. Майкрософт молодцы. надо брать лучшее и ехать дальше. А не изобретать с нуля и злобится на всех остальных. Это просто называется "практичность".
Он медленнее.
Да, но зато очень легко и органично интегрируется со всем, что написано на C# и любом другом .NET, включая любимый сейчас в линукс Iron python и Iron ruby. И даже managed С++.
И можешь сильные стороны F# хоть через функцию использовать с сильными сторонами C#.
А вот запихай и интегрируй под OCaml какой-нибудь буст, а бус - под Ocaml. Но лучше не буст, а еще что-нибудь свое.
Поэтому я и пишу, что есть круг задач, которые остается и останется за С и С++ и что-то за Ocaml. Но есть другие вещи, которые за проценты (не разы) производительности предлагают более удобные решения.
Отредактировано Tiphon (28-07-10 16:59:00)
Квантовая механика - "малопонятный математический курьёз" (с) msAVA - современный учитель.
Вне форума
Не соглашусь с такой логикой. Майкрософт безусловно хороша в заимствовании инноваций. Полностью своих у них немного. Стоит раскрыть глаза - и можно увидеть, что без MS мир ничуть не тусклее и не менее беден инструментами для программера.
Я согласен, что МS не делает ничего принчипиально нового. Но они доводят до ума то, что другие не доводят, и поэтому молодцы.
Идея дотнета витала в воздухе, они, воспользовавшись свои монопольным положением, таки да, стали продвигать дотНет. Но если бы они не воспользовались своим монопольным положением и не стали продвигать - было бы хуже. Сделать стандарт там, где стандарта не было - тоже работа.
Насчёт фреймворка - Java. Разница - в подходе и кол-ву и направленности синтаксического сахара. Принципиальной разницы нет. Дотнет создавался именно как "своя ява".
Не согласен. Тут пруфлинк невозможен
но дотНет все-таки создавался как альтернатива нативному коду, а не яве, хоть в результате и получилось похожее. Потому что он тесно интегрируется с системой, в отличие от Явы, и у него идеология другая. дотНет все-таки стремиться расширить для программиста возможности использования ОС, а такой подход вредит переносимости. Для Явы же переносимость очень важна идеологически. Насчет Явы уже понятно, она что не вытеснит нативный код, в отличие от дотнета.
C++ в отличие от C# стандартизирован ISO, вместе со стандартной библиотекой
Ну значит, то ли плохо стандартизирован, то ли стандарты убогие, раз, повторюсь, каждый свои строки пишет.
DonDublon3 пишет
друг другу невозможно ничего передать сложнее чисел и указателей на неизвестно что.
А так было, есть и будет. Потому что даже при одном и том же API - ABI никто не стандартизует. Для свободы выбора реализации под разные платформы. То, что вы предлагаете - это отказ от этой свободы в пользу простоты нативного связывания библиотек на разных языках.
А как же ява с дотнетом? Пожалуй, главная их прелесть и общая сторона - в богатом стандартизированном фреймворке, вплоть до ABI,
включающего классы. Да, это отказ от свободы, но это разумно и правильно. Стандарт (абсолютно любой, не только в ИТ) - это и есть отказ от свободы.
Тифон прав, в том что
Понимаешь, в чем дело. когда мы доходим до этого уровня все равно нужен еще один уровень абстракции, который есть в виде java, .net, llvm.
"Фу бля, крохобор вонючий" (с) Svart Testare
Вне форума
Не согласен. Тут пруфлинк невозможен но дотНет все-таки создавался как альтернатива нативному коду, а не яве, хоть в результате и получилось похожее. Потому что он тесно интегрируется с системой, в отличие от Явы, и у него идеология другая. дотНет все-таки стремиться расширить для программиста возможности использования ОС, а такой подход вредит переносимости. Для Явы же переносимость очень важна идеологически. Насчет Явы уже понятно, она что не вытеснит нативный код, в отличие от дотнета.
Да, тут я полностью согласен. На джаву она и правда очень похоже, тк.к. многое хорошее с джавы и бралось. Да) Я уже писал об этом выше. И все-таки давайте убережемся в этой темы от java vs. net. Просто реально по инструментариям оба очень богаты.
Я выбираю .net за его подход и интегрированность, что экономит.
Хотя я в реальности тоже сижу под 7-8 языками, в основном под линух, только 2 проекта у меня идут под net и я на них отдыхаю)
Квантовая механика - "малопонятный математический курьёз" (с) msAVA - современный учитель.
Вне форума
Но тут еще один минус появляется, когда есть такой отдельный класс - про него надо знать. И вот тут-то и появляется втыкание в чужой код.
Та же тоже надо явно импортировать экстеншын этот, не? А то как его подключать щ, если никто про него не знает?
втыкание в чужой код.
просмотр дока к функции
У C# ведь и с автоматической (втсроенной) документацией, которая идет вместе с библиотеками - все нормально. Смотрите:
Javadoc, только в XML виде. 
Ну ок, если на секунду офигел от кода, а потом навёл щ на функцию и глянул док то может и несложно воспринимать чужую писанину.
[ MS любит такие вот штуки постоянно выдавать. Наверное, привычка от продажи одного и того же (винды и офис). щ в жабу в 90е хотела залезть со своими расширениями. Но там по рогам дали
]
Ну и доступность классов из любого языка и места
Ты об этом говоришь, как о каком-то пустячке. На самом деле это невъебённо круто!
"Фу бля, крохобор вонючий" (с) Svart Testare
Вне форума
Ага. Майкрософт молодцы. надо брать лучшее и ехать дальше. А не изобретать с нуля и злобится на всех остальных. Это просто называется "практичность".
Не понял мысли.
Да, но зато очень легко и органично интегрируется со всем, что написано на C# и любом другом .NET, включая любимый сейчас в линукс Iron python и Iron ruby. И даже managed С++.
Это, имхо, вообще не верный подход к разработке.Если мне бывает нужна интеграция я делаю ее сам.А не то такая каша выйдет.Ну зачем мне буст в ML?
Анархия-мама сынов своих любит
Вне форума
Это, имхо, вообще не верный подход к разработке.Если мне бывает нужна интеграция я делаю ее сам.А не то такая каша выйдет.Ну зачем мне буст в ML?
Хорошо, буст - это плохой пример. Ну а если есть у тебя такая штучка, которая красиво рисует графики. А ты хочешь ее использовать у себя под ocaml?
Или есть у тебя такая штучка, которая классно делает логи, и это то, что надо под ocaml?
Именно такая вещь позволяет удобно разрабатывать вещи там, где они удобно разрабатываются и объединять их.
Отредактировано Tiphon (28-07-10 17:09:52)
Квантовая механика - "малопонятный математический курьёз" (с) msAVA - современный учитель.
Вне форума
Насчет Явы уже понятно, она что не вытеснит нативный код, в отличие от дотнета.
Пока JavaOS (уже прошлое) или Singularity не будут стоять на десктопах, об этом речь можно даже не вести.
то ли стандарты убогие, раз, повторюсь, каждый свои строки пишет.
Мне кажется, что сказалось излишнее стремление сделать "микроядро" из языка, а всё остальное сделать через библиотеки. Потоки и строки, имхо, должны быть в языке. Это базовые примитивы.
А как же ява с дотнетом? Пожалуй, главная их прелесть и общая сторона - в богатом стандартизированном фреймворке, вплоть до ABI,
На ABI там стандарта нет. Есть динамическое связывание и передача по ссылкам. Сериализация об'екта в Sun HotSpot и щ десериализация в JRocket (IBM), в щ случае работать не будет. Я бы даже сказал, что на практике просто не будет.
Стандарт (абсолютно любой, не только в ИТ) - это и есть отказ от свободы.
Достаточно почитать стандарт по С++ или спеку языка Java - и можно понять, что там дают широкие возможности разработчикам компиляторов. Совершенно умышленно. Производительность важнее удобства линковки "непримитивных" функций в одном процессе.
Хорошо, буст - это плохой пример. Ну а если есть у тебя такая штучка, которая красиво рисует графики. А ты хочешь ее использовать у себя под ocaml?
Точно-точно.
При этом графики рисуются из, как минимум, числового массива. Вот для Питона, к примеру, есть matplotlib, который работает с Питоновскими списками. И строит на окнах Tcl. И поди заюзай это в другом языке. Или даже не в другом языке, а в том же питоне, но если приложение пишется на PyQt.
Так что общность типов - это просто мега, мега-инструмент!
"Фу бля, крохобор вонючий" (с) Svart Testare
Вне форума
Та же тоже надо явно импортировать экстеншын этот, не? А то как его подключать щ, если никто про него не знает?
Не, явно импортировать не надо.
msdn.microsoft.com/en-us/library/zz9ayh33(VS.90).aspx
Квантовая механика - "малопонятный математический курьёз" (с) msAVA - современный учитель.
Вне форума
Tiphon,
Я понимаю о чем вы говорите, таки неудобства етсь.
Но я считаю, что это должно решатся на уровне средств IPC операционной системы, а никак не на уровне языка.
Анархия-мама сынов своих любит
Вне форума
Я понимаю о чем вы говорите, таки неудобства етсь.
Но я считаю, что это должно решатся на уровне средств IPC операционной системы, а никак не на уровне языка.
Но подожди, идея языка как раз заключается в том, что ты пишешь не под ос, а под некий уровень абстракции, например, виртуальную машину. Который (уровень) отвечает уже за разборки с ОС. У тебя все равно так выходит в больших проектах. Просто нельзя смотреть на мир с точки зрения идеалов, что это должно решатся на уровне средств IPC операционной системы. В настоящих, реальных ОС был допущен ряд ошибок, которые уже никогда не будут убраны из-за совместимости. Да и в архитектуре современного железа, в общем-то - тоже.
Если бы вот сейчас кто-то разрабатывал операционную систему с нуля и у него было много ресурсов и опыта, но не было такой сволочной позиции, как у майкрософта. И вообще он, обладая немеренными ресурсами хотел сделать мир лучше, а не заработать... А все пользватели мгновенно перешли бы на эту систему... Вот тогда... - Вот какие рассуждения приходят в ответ на твою фразу. Ты сам в них веришь?
А если смотреть на .нет как часть системы майкрософт. ТО ИМЕННО К ЭТОМУ ОНА И ИДЕТ.
Отредактировано Tiphon (28-07-10 17:24:01)
Квантовая механика - "малопонятный математический курьёз" (с) msAVA - современный учитель.
Вне форума
Потоки и строки, имхо, должны быть в языке. Это базовые примитивы.
Вот понимаешь, сегодня это считается базовыми примитивами, а 40 лет назад не считалось.
(Поэтому мы и имеем не только строки разные, но и потоки, тот же список: QThread из Qt, потоки в Питоне, TThread в delphi..)
А еще через 10 лет список желательных примитивов будет еще существенно расширен. В него добавятся, как минимум, одномерные массивы. А есть еще: многомерные массивы, всякие генерики, плюс окна, которые из работы одного человека хочет заюзать другой... Да мало ли напридумывается.
Поэтому искусственно ограничивать список примитивов, как, по твоим словам, делали создатели С++, это зло.
На ABI там стандарта нет. Есть динамическое связывание и передача по ссылкам. Сериализация об'екта в Sun HotSpot и щ десериализация в JRocket (IBM), в щ случае работать не будет.
Я не был уверен в то, что общий ABI у них более чем в пределах одного типа процессора, поэтому и не написал. Но в рамках одного процессора-то ABI таки одинаковый. И это уже круто.
"Фу бля, крохобор вонючий" (с) Svart Testare
Вне форума
Не, явно импортировать не надо.
Я не понимаю механизма, как компилятор, видя String s; s.doSomething(), поймёт, что это расширение, а не синтаксическая ошибка? Это расширение ему надо явно "скормить" перед началом компиляции, иначе он байт-код не сгенерит.
всем досвидания, мне пора 
"Фу бля, крохобор вонючий" (с) Svart Testare
Вне форума
[ Сгенерировано за 0.014 сек, 7 запросов выполнено - Использовано памяти: 1.82 Мбайт (Пик: 1.9 Мбайт) ]