Востребованность языков программирования

Перенос из темы «Что, господа суровые С++ программисты, поспорим быстродействием с отстойной Джавой? ;)»
 
1 2 3 4 5 6 7
US Mishka #14.09.2011 18:57  @Реконструктор#14.09.2011 18:44
+
-
edit
 

Mishka

модератор
★★☆
Реконструктор> Хорошо, скажем на PC оно как будет?
Кстати, осмысли и из параграфа, приведённого выше вот эту строчку:
The constant-expression may be larger than the number of bits in the object representation (3.9) of the bit-field’s type; in such cases the extra bits are used as padding bits and do not participate in the value representation (3.9) of the bit-field.

Там тоже много интересного скрыто. Чего-то я подозреваю, что ты про это и не слышал.
 6.06.0
BG Реконструктор #14.09.2011 19:01  @Mishka#14.09.2011 18:54
+
-
edit
 
Mishka>А так зависит от людей, делающих компилятор, бо по стандарту им отдано на откуп.
Хорошо, а на уровне ассемблера как будет? 1 или 80000000 ?
 6.0.26.0.2
US Mishka #14.09.2011 19:49  @Реконструктор#14.09.2011 19:01
+
-
edit
 

Mishka

модератор
★★☆
Реконструктор> Хорошо, а на уровне ассемблера как будет? 1 или 80000000 ?
На уровне ассемблера будет так, как пожелает создаетель компилятора. Ему дано право выбирать.
 6.06.0
+
-1
-
edit
 

cholev

втянувшийся

Balancer>> Индустрии программирования.
TEvg> Конкретно тебе .Net нужна? Что на ней делаешь? И почему делаешь на .Net, а не на чем-то другом?
>>Конечно, не Java, но C# по Tiobe — уже на уровне PHP.
TEvg> Тебе C# нужен как язык или из-за среды .Net?


Кстати. Прогуглил .нет вс жабы. Получается что жаба не поддерживаетж куча вещей (обратное не верно) например:
properties
events
partial classes
conversions
optional parameters
generics
late binding
nullable types
conditional compilations

Нет такой фичи как Linq и связаннвые с ним (anonimous methods; lambda expresions)
Вопрос: есть ли в IDE 'edit and continue', IntelliSense
Жизнь без properties и events- ето круто :eek:
За чем тогда ето жаба если есть .Нет
 9.09.0
+
+1
-
edit
 

Mishka

модератор
★★☆
cholev> properties

Посмотри на всякие библиотечки с реализацией Inversion Of Control (типа Spring-а или Hibernate) — там через Reflection Interface много чего сделано.

cholev> events

Ну, не в стиле виндов, но поддержка многонитевости есть (это означает, что есть и защита, и синхронизация).

cholev> generics

Поддерживаются. :)

cholev> late binding

Конечно поддерживается. Можно классы загружать вообще из других jar-ов, что многие WebServer-а и делают. При этом не надо перестаротовать сервер. И выгружать могут.

cholev> Нет такой фичи как Linq и связаннвые с ним (anonimous methods; lambda expresions)

Гы-гы. Это из Джавы и появилось в Шарпе. Почти все listener-ы сделаны как ананоминые вещи и лямбда вещи.

cholev> Вопрос: есть ли в IDE 'edit and continue', IntelliSense

Много чего есть. Есть очень неплохая IDE из Питера. И даже за бесплатно.
 6.06.0
US Сергей-4030 #14.09.2011 23:27  @cholev#14.09.2011 23:06
+
-
edit
 

Сергей-4030

исключающий третье
★☆
админ. бан
cholev> Кстати. Прогуглил .нет вс жабы. Получается что жаба не поддерживаетж куча вещей (обратное не верно) например:

Не все, что можно поддерживать, нужно поддерживать. Но по большому счету, пожалуй, в области языка .Net чуть впереди (что и логично, он позднее начал). Да, это так. При этом много чего есть такого, что важнее этого языкового преимущества. Зависит от проекта.
 13.0.782.22013.0.782.220
US Сергей-4030 #14.09.2011 23:35  @Mishka#14.09.2011 23:18
+
-
edit
 

Сергей-4030

исключающий третье
★☆
админ. бан
cholev>> Нет такой фичи как Linq и связаннвые с ним
Mishka> Гы-гы. Это из Джавы и появилось в Шарпе.

Не, аналога Linq нету. Было бы классно, но нету.
 13.0.782.22013.0.782.220

cholev

втянувшийся

cholev>> events
Mishka> Ну, не в стиле виндов, но поддержка многонитевости есть (это означает, что есть и защита, и синхронизация).

Events- собития. С многонитевости неть общего.
Пример в VB.NET:
Сценарий:
User Control placed on a Form. Контрол не знаеть ничего о форме. Юзер делает' действие на контроле. Контрол извещаеть parent о действия юзера (event)

'декларация ивента.
Public Event ClienrtChanged(ByVal ClientID As Integer)
'
'lvClients.SelectionChanged- ето тоже ивент- ListView control selection changed
Private Sub lvClients_SelectionChanged(ByVal sender As Object, ByVal e As System.Windows.Controls.SelectionChangedEventArgs) Handles lvClients.SelectionChanged
Dim cb As cbItemDataWCF
cb = CType(lvClients.SelectedItem, cbItemDataWCF)
'конверсия-lvClients.SelectedItem- конверирован до обект cbItemDataWCF
If cb Is Nothing Then Exit Sub
CurrentClientID = cb.ItemData
RaiseEvent ClienrtChanged(CurrentClientID)
'стартирован ивент ClienrtChanged которой перадаеть CurrentClientID парент-у
End Sub

'в основной форме надо перахватить ивент ClienrtChanged
 9.09.0
US Mishka #15.09.2011 00:45  @Сергей-4030#14.09.2011 23:35
+
-
edit
 

Mishka

модератор
★★☆
Сергей-4030> Не, аналога Linq нету. Было бы классно, но нету.
Linq — нету, анонимные и лямбда — есть.
 6.06.0

Mishka

модератор
★★☆
cholev> Events- собития. С многонитевости неть общего.

Здрасьте. В однонитеевости (строгой) всё синхронно.

cholev> 'в основной форме надо перахватить ивент ClienrtChanged
Ты не про те Event-ы говоришь тогда. Твои Event-ы — вполне присутствуют в AWT. Эти Event-ы — это хуки, к которым прицепляется кастомный код. Есть много разных вариантов реализации. В том числе и listeners — это по подписке, когда один и тот же Event может быть передан не одному, а множеству заинтерисованных сторон.
 6.06.0

Nikita

аксакал

Mishka> Ну, не в стиле виндов, но поддержка многонитевости есть (это означает, что есть и защита, и синхронизация).

Вы не в теме. Те event'ы о которых идёт речь - специальная разновидность членов класса на базе делегатов. К примитивам синхронизации они (почти) никакого отношения не имеют.

cholev>> generics
Mishka> Поддерживаются. :)

Ваш смайлик очень символичен. Generic'и Java - убогий костыль сделанный через type erasure. Всё на что они годятся - прикручивать типизацию к примитивным контейнерам. Больше ничего полезного на них сделать нельзя. Тогда как уже в C# 2.0 - задолго до Java'вских ужосов - были реализованы нормальные честные полноценные generic'и со всеми прибамбасами.

cholev>> Нет такой фичи как Linq и связаннвые с ним (anonimous methods; lambda expresions)
Mishka> Гы-гы. Это из Джавы и появилось в Шарпе. Почти все listener-ы сделаны как ананоминые вещи и лямбда вещи.

Песен не надо, пожалуйста. В Java нет лямбда-выражений. Анонимные классы механизм также убогий чуть более чем полностью, как по громоздкости\объёму кода, так и по части отсутствия реализации замыканий.
LINQ на Java тем более невозможен - не хватает ещё кучи механизмов.
Учитесь читать.  9.09.0
US Сергей-4030 #15.09.2011 07:12  @Nikita#15.09.2011 06:53
+
-
edit
 

Сергей-4030

исключающий третье
★☆
админ. бан
Nikita> Ваш смайлик очень символичен. Generic'и Java - убогий костыль сделанный через type erasure. Всё на что они годятся - прикручивать типизацию к примитивным контейнерам. Больше ничего полезного на них сделать нельзя.

Большой вопрос, надо ли на генериках делать что-нибудь еще.

Nikita> Анонимные классы механизм также убогий чуть более чем полностью, как по громоздкости\объёму кода, так и по части отсутствия реализации замыканий.

По коду - да, тут не поспоришь. И исходники выглядят не очень и каждый анонимный класс - как минимум 1.5 кб бинарников. Но лучше, чем ничего. Может, и убогий по сравнению с C#, но тем не менее вполне рабочий. В общем, чего там, да, С# как язык лучше. С другой стороны, практика - критерий истины. Полезность/вредность того или другого языкового средства можно оценить исключительно по тому, как быстро можно реализовать ту или другую функциональность (в смысле - получить готовый продукт, удовлетворяющий спецификациям и содержащим багов не больше, чем согласен терпеть клиент).
 13.0.782.10713.0.782.107
RU Nikita #15.09.2011 07:33  @Сергей-4030#15.09.2011 07:12
+
-
edit
 

Nikita

аксакал

Сергей-4030> Большой вопрос, надо ли на генериках делать что-нибудь еще.

Конечно же надо. И то что Вы не можете себе это самое "надо" представить\вообразить - есть прямое следствие сидения на убогих Java'вских type erasure generic'ах.

Будете продолжать с ними тусоваться - у Вас вообще всё атрофируется :D

Сергей-4030> По коду - да, тут не поспоришь. И исходники выглядят не очень и каждый анонимный класс - как минимум 1.5 кб бинарников. Но лучше, чем ничего. Может, и убогий по сравнению с C#, но тем не менее вполне рабочий.

Да, рабочий. Только вот за то же время я на C# в 10 раз больше добра наваяю.

Язык должен облегчать и упрощать. Зачем мне писать ручками то, что компилятор сам может сгенерить ???
Учитесь читать.  9.09.0
US Сергей-4030 #15.09.2011 07:55  @Nikita#15.09.2011 07:33
+
-
edit
 

Сергей-4030

исключающий третье
★☆
админ. бан
Сергей-4030>> Большой вопрос, надо ли на генериках делать что-нибудь еще.
Nikita> Конечно же надо. И то что Вы не можете себе это самое "надо" представить\вообразить - есть прямое следствие сидения на убогих Java'вских type erasure generic'ах.

Когда я сидел на плюсах, у меня было такое же представление.

Nikita> Да, рабочий. Только вот за то же время я на C# в 10 раз больше добра наваяю.

Это очень большое преувеличение. Это не разы ни в коем случае. Единицы процентов, может быть.
 13.0.782.10713.0.782.107
US Сергей-4030 #15.09.2011 07:59  @Nikita#15.09.2011 07:33
+
-
edit
 

Сергей-4030

исключающий третье
★☆
админ. бан
Nikita> Язык должен облегчать и упрощать. Зачем мне писать ручками то, что компилятор сам может сгенерить ???

Собственно, не одним только языком сильна платформа. А MS'у органически присуща межплатформенная борьба, и это вполне объективно - им просто невыгодно продвижение других, невиндосовских, платформ. .Net под Линукс - это хорошо, но мало. У Java покрытие больше.
 13.0.782.10713.0.782.107
RU Nikita #15.09.2011 08:44  @Сергей-4030#15.09.2011 07:55
+
-
edit
 

Nikita

аксакал

Сергей-4030> Когда я сидел на плюсах, у меня было такое же представление.

C++ тоже не чемпион. Вывод типов там очень слабый, в связи с чем многие потенциально изящные вещи выглядят жутко.

Но тем не менее, если работая на C++ Вы не осознавали возможностей\преимуществ шаблонов по части, например, того же метапрограммирования, то видимо проблема действительно в том, что Ваш предел это дежурное формокодерство...

Сергей-4030> Это очень большое преувеличение.

Это, наоборот, преуменьшение. Простейший LINQ-запрос в одну строчку, на Java превращается в кошмарную многостраничную портянку. А уж если попробовать чего-нибудь использующее Rx спортировать - так и вообще полный карачун наступает.
Учитесь читать.  9.09.0
RU Nikita #15.09.2011 08:48  @Сергей-4030#15.09.2011 07:59
+
-
edit
 

Nikita

аксакал

Сергей-4030> У Java покрытие больше.

Не волнуйтесь, товарищи из Oracle это скоро исправят :cool: Android вон уже во всю ковыряют в судах :D
Учитесь читать.  9.09.0
BG Реконструктор #15.09.2011 12:01  @Mishka#14.09.2011 19:49
+
-
edit
 
Mishka> На уровне ассемблера будет так, как пожелает создаетель компилятора. Ему дано право выбирать.
:D :D Тут и сказать нечего. В очередной раз.
 6.0.26.0.2
BG Реконструктор #15.09.2011 12:03  @cholev#14.09.2011 23:06
+
-
edit
 
cholev> Кстати. Прогуглил .нет вс жабы. Получается что жаба не поддерживаетж куча вещей (обратное не верно) например:
А самое главное упустили - делегаты. :) Хотя в джаве это частично компенсируется имплементацией на месте создания.
 6.0.26.0.2
US Сергей-4030 #15.09.2011 17:24  @Nikita#15.09.2011 08:44
+
-
edit
 

Сергей-4030

исключающий третье
★☆
админ. бан
Nikita> Но тем не менее, если работая на C++ Вы не осознавали возможностей\преимуществ шаблонов по части, например, того же метапрограммирования,

Функциональность шаблона есть операция над некоторым общим интерфейсом-wrapper'ом над разными типами объектов. Это бывает удобно, когда компилятор генерит эти wrapper'ы, но это не отменяет ни того, что данным концептом можно пользоваться без помощи компилятора ни того, что когда обертки генерирует компилятор, у разработчика могут возникнуть проблемы например, в понимании внутренностей обертки.

Nikita> то видимо проблема действительно в том, что Ваш предел это дежурное формокодерство...

Ты хамишь, парниша. На будущее перед такими заявами приложи пейчек, как твои способности оценивает работодатель/клиенты.

Nikita> Это, наоборот, преуменьшение. Простейший LINQ-запрос в одну строчку, на Java превращается в кошмарную многостраничную портянку.

И что, у тебя вся программа состоит из LINQов?
 13.0.782.22013.0.782.220
US Сергей-4030 #15.09.2011 17:24  @Реконструктор#15.09.2011 12:03
+
-
edit
 

Сергей-4030

исключающий третье
★☆
админ. бан
Реконструктор> А самое главное упустили - делегаты. :) Хотя в джаве это частично компенсируется имплементацией на месте создания.

Не упустили, а перечислили в числе первых.
 13.0.782.22013.0.782.220

yacc

старожил
★☆

Nikita> то видимо проблема действительно в том, что Ваш предел это дежурное формокодерство...
Да лано... там столько фана! :)
 3.6.203.6.20
US Сергей-4030 #15.09.2011 17:26  @Реконструктор#15.09.2011 12:01
+
-
edit
 

Сергей-4030

исключающий третье
★☆
админ. бан
Реконструктор> :D :D Тут и сказать нечего. В очередной раз.

В очередной раз ты сел в лужу, на этот раз не потому, что не знаешь Java, а потому, что не знаешь плюсов? Да ерунда, ты же у нас нигилист, тебе все равно, что о тебе другие думают. Ну, плюхнул там, потрепался здесь, большое дело.
 13.0.782.22013.0.782.220
RU yacc #15.09.2011 17:29  @Сергей-4030#15.09.2011 17:24
+
-
edit
 

yacc

старожил
★☆

Сергей-4030> На будущее перед такими заявами приложи пейчек, как твои способности оценивает работодатель/клиенты.
Э... а мы тут разве о бабле?
А то можно и на Коболе или С приличные бабки лабать :)
 3.6.203.6.20
US Сергей-4030 #15.09.2011 17:32  @yacc#15.09.2011 17:24
+
-
edit
 

Сергей-4030

исключающий третье
★☆
админ. бан
Nikita>> то видимо проблема действительно в том, что Ваш предел это дежурное формокодерство...
yacc> Да лано... там столько фана! :)

GridBag - мощная и гибкая штука. Правда, удобнее ее использовать не при собственно кодировании, а при генерации UI кода. Больно уж громоздко.
 13.0.782.22013.0.782.220
1 2 3 4 5 6 7

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru