[image]

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

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

Balancer

администратор
★★★★★
Balancer>> 2. Бинарник, полученный с помощью Си++ жёстко привязан к платформе
Реконструктор> Платформено-зависимая функциональность (обычно написана на C) джавы изолирована от основной логики в отдельный модуль. Что и положено всем нормально спроектированным программам, вкл. C++

Как мне бинарник, написанный на Си++ под Linux запустить на Windows?

А вот с Java такой вопрос не возникает. Просто запускаешь и всё.
   
KZ TEvg #14.09.2011 14:53  @Сергей-4030#13.09.2011 17:22
+
-
edit
 

TEvg

аксакал

админ. бан
Сергей-4030> PS До смешного доходит. Java, которая со всех "языковых" характеристик безусловно превосходит плюсы, объявляется "недоязыком".

Там даже беззнаковых чисел нет. :p Посчитайте какую-нибудь хеш-сумму на Яве.

Недоязык, так оно и есть. Про тормоза молчу. Что с того что простой числодробильный цикл она нынче быстро крутит? Готовое гуевное приложение на жабе - это тихий ужас.
   3.6.133.6.13

TEvg

аксакал

админ. бан
Balancer> Как мне бинарник, написанный на Си++ под Linux запустить на Windows?

Берешь исходник, соответсвующий компилятор - и в путь.
   3.6.133.6.13
BG Реконструктор #14.09.2011 15:00  @Balancer#14.09.2011 14:02
+
-
edit
 
Balancer> {{{cpp
Balancer> int i = 5;
Balancer> std::cout

code text
  1.  
  2. grigory@grisha-desktop:/data/home/grigory$ cat > test.cpp
  3. #include <iostream>
  4. int main()
  5. {
  6. int i = 5;
  7. std::cout << i++ + ++i << std::endl;
  8. }
  9. grigory@grisha-desktop:/data/home/grigory$ g++ test.cpp -o test_bin
  10. grigory@grisha-desktop:/data/home/grigory$ ./test_bin
  11. 12
  12. grigory@grisha-desktop:/data/home/grigory$
   6.0.26.0.2
BG Реконструктор #14.09.2011 15:01  @Balancer#14.09.2011 14:51
+
-
edit
 
Balancer> Просто запускаешь и всё.
Если выполнены некоторые (многие) условия.
   6.0.26.0.2
RU Balancer #14.09.2011 15:01  @Реконструктор#14.09.2011 15:00
+
-
edit
 

Balancer

администратор
★★★★★
Реконструктор> 12

Ты вопроса не понял. Значит, с этим моментом Си++ тоже не знаком. А лезешь даже Java критиковать :D
   
RU Balancer #14.09.2011 15:03  @Реконструктор#14.09.2011 15:01
+
-
edit
 

Balancer

администратор
★★★★★
Реконструктор> Если выполнены некоторые (многие) условия.

Да. Но этих условий не так много и они выполнимы. И на практике выполняются часто.

А с Си++ ты такого вообще не сделаешь.

Вот и вся, маленькая такая, разница…
   
BG Реконструктор #14.09.2011 15:06  @Balancer#14.09.2011 15:01
+
-
edit
 
Balancer> Ты вопроса не понял. Значит, с этим моментом Си++ тоже не знаком. А лезешь даже Java критиковать :D

Я джаву не критикую. Так же как, скажем, не критикую автомобили ВАЗ. Я критикую использование автомобилей ВАЗ на трассе для F1.
   6.0.26.0.2
RU Balancer #14.09.2011 15:11  @Реконструктор#14.09.2011 15:06
+
+2
-
edit
 

Balancer

администратор
★★★★★
Реконструктор> Я критикую использование автомобилей ВАЗ на трассе для F1.

Это — сколько угодно. Но обычно ты сводишь разговор к критике трактора для перевозки картошки, так как на болиде F1 картошку можно везти быстрее.

Также, ты очень недоволен тем, что трактора (или автомобили ВАЗ) более распространены, чем болиды F1. И считаешь, что каждый уважающий себя водитель должен ездить только на F1. Даже на дачу и в супермаркет.

При этом, что характерно, обычно передвигаешься на своём болиде F1 в рамках гаража и на первой передаче. А за рулём трактора даже не сидел, только тракториста в кино видел.
   
15.09.2011 18:33, Luchnik: +1: ЖжОшь. :)
BG Реконструктор #14.09.2011 15:12  @Balancer#14.09.2011 15:03
+
-
edit
 
Реконструктор>> Если выполнены некоторые (многие) условия.
Balancer> Да. Но этих условий не так много и они выполнимы. И на практике выполняются часто.

Как я уже сказал - нужно иметь изолирующий слой. Как минимум. Часто это практически невыполнимо - попробуй запусти программку для Андроида на PC (любая ОС)?

Balancer> А с Си++ ты такого вообще не сделаешь.
Balancer> Вот и вся, маленькая такая, разница…

К стати, в свете верхнего, я не уверен что бинарик в эмуляторе будет медленее/хуже, чем java в VM.
   6.0.26.0.2

yacc

старожил
★★★
Balancer> Тут есть пара моментов:
Balancer> 1. На Си++ легко получить неработоспособную программу при сборке нового бинарника на другую платформу или даже при смене опций компиляции.
А зачем с этим играться? :) Платформо-зависимый код оформляется в библиотеки - и собственно только его портировать и надо.
В любом случае нормальная программа прогоняется через девелоперские тесты и QA.

Balancer> и вопрос глюков на другой платформе вообще не вспывает.
JRE тоже для разных платформ - разная. На одной бага есть, на другой - может и не быть. Так что то, что ты оттестировал на одной платформе, еще не означает что на другой все корректно будет работать.

Это - стандартно для кроссплатформенных языков - в т.ч. для питона. Никто там не мешает написать платформо-зависимый код, который накроется на другой платформе ( типичный пример - пути в файловой системе ).
   3.6.203.6.20
RU Balancer #14.09.2011 15:14  @Реконструктор#14.09.2011 15:12
+
-
edit
 

Balancer

администратор
★★★★★
Реконструктор> Как я уже сказал - нужно иметь изолирующий слой. Как минимум.

Этот «слой» обычно уже обязательно включён в состав JVM. Так что разработчику ничего не нужно.

Реконструктор> Часто это практически невыполнимо - попробуй запусти программку для Андроида на PC (любая ОС)?

Программы для Андроида не на Java, а на Dalvik. Ты можешь скомпилировать на Си++ программу, написанную на Objective-C?

Реконструктор> К стати, в свете верхнего, я не уверен что бинарик в эмуляторе будет медленее/хуже, чем java в VM.

Удивись, но, во-первых, эмулятора Linux для Windows нет, во-вторых — много медленнее. Богатый опыт обратного использования — Wine.
   

Balancer

администратор
★★★★★
yacc> А зачем с этим играться? :) Платформо-зависимый код оформляется в библиотеки - и собственно только его портировать и надо.

Затем, что это всё лишние проблемы и задачи. И так с миру по нитке и набирается неудобство использования Си/Си++ кроме нишевых (хотя и важных) задач.
   
BG Реконструктор #14.09.2011 15:20  @Balancer#14.09.2011 15:11
+
-
edit
 
Balancer> Это — сколько угодно. Но обычно ты сводишь разговор к критике трактора для перевозки картошки, так как на болиде F1 картошку можно везти быстрее.

Нет, это вот вы спорите, что трактор подходит всему - и перевозке картошки и гонкам по трассе.

Balancer> Также, ты очень недоволен тем ...

Ну, как ты такое решил, это я вообще не знаю.

Balancer> При этом, что характерно, обычно передвигаешься на своём болиде F1 в рамках гаража и на первой передаче. А за рулём трактора даже не сидел, только тракториста в кино видел.

Так, сейчас подсчитаю... За программирование Андроид приложений я получил, к настоящему моменту, примерно $15000 (по болгарским тарифам). Это исключая те самые jni библиотеки, говорим о чистой джаве. Зачет?
   6.0.26.0.2
RU Balancer #14.09.2011 15:30  @Реконструктор#14.09.2011 15:20
+
-
edit
 

Balancer

администратор
★★★★★
Реконструктор> Нет, это вот вы спорите, что трактор подходит всему - и перевозке картошки и гонкам по трассе.

Это у тебя галлюцинации. Я, вот, сейчас вообще автобус вожу :) И вожу не картошку по трассе, а пассажиров по маршруту. И говорю не о том, что трактор всюду пригоден (кстати, трактор на трассе F1 проедет, в отличии от болида F1 на колхозном поле), а о том, что глупо всё решать в рамках F1.

Balancer>> Также, ты очень недоволен тем ...
Реконструктор> Ну, как ты такое решил, это я вообще не знаю.

Да ты не раз удивлялся, с чего это у той же Java популярность настолько выше. Типа, не оправдано оно.

Реконструктор> Так, сейчас подсчитаю... За программирование Андроид приложений я получил, к настоящему моменту

Очень слабо верится. Твои комментарии в теме позволяют сомневаться в твоей Java-практике.
   

yacc

старожил
★★★
Balancer> Затем, что это всё лишние проблемы и задачи.
Не... я не понимаю - зачем играться с опциями компиляции? :)

Balancer>И так с миру по нитке и набирается неудобство использования Си/Си++ кроме нишевых (хотя и важных) задач.
Так в мейнстриме С\С++ делать нечего - уже полно средств, которые только напильником подпилить надо - типа движков форумов или складских баз. :) Да те же плагины к Офису ( кстати, для MS - не на Java :) )
   3.6.203.6.20
BG Реконструктор #14.09.2011 16:23  @Balancer#14.09.2011 15:30
+
-
edit
 
Очень слабо верится. Твои комментарии в теме позволяют сомневаться в твоей Java-практике.
 

Этот «слой» обычно уже обязательно включён в состав JVM.
 

Мои далнейшие комментарии полностью лишены смысла. :D
   6.0.26.0.2
RU Balancer #14.09.2011 16:26  @Реконструктор#14.09.2011 16:23
+
-
edit
 

Balancer

администратор
★★★★★
Реконструктор> Мои далнейшие комментарии полностью лишены смысла. :D

Угу. С тобой давно уже всё ясно :)
   
BG Реконструктор #14.09.2011 16:57  @Balancer#14.09.2011 16:26
+
-
edit
 
US Mishka #14.09.2011 18:35  @Реконструктор#14.09.2011 11:30
+
-
edit
 

Mishka

модератор
★★★
Реконструктор> вообще-то bb |= 0x00000001; и bb |= 0x80000000; всегда делают то, что ты ожидал, вне зависимости endianess. Тоесть то, что bb.firstBit = 1; транслируется либо в одно, либо в другое - это вряд ли.
Вообще-то, Гоша, BE/LE не имеет отношения к нумерации битов в слове. ;)
   6.06.0
BG Реконструктор #14.09.2011 18:39  @Mishka#14.09.2011 18:35
+
-
edit
 
Mishka> Вообще-то, Гоша, BE/LE не имеет отношения к нумерации битов в слове. ;)

bb.firstBit = 1; будет всегда bb |= 0x00000001; вне зависимости от ендиана
   6.0.26.0.2

Mishka

модератор
★★★
yacc> JRE тоже для разных платформ - разная. На одной бага есть, на другой - может и не быть. Так что то, что ты оттестировал на одной платформе, еще не означает что на другой все корректно будет работать.

Дык, даже libc на разных платформах разная. И ошибки там есть.
   6.06.0
US Mishka #14.09.2011 18:43  @Реконструктор#14.09.2011 18:39
+
-
edit
 

Mishka

модератор
★★★
Реконструктор> bb.firstBit = 1; будет всегда bb |= 0x00000001; вне зависимости от ендиана
Нет. :P Ты даже этого не знаешь. Читай стандарты — они рулез.
   6.06.0
BG Реконструктор #14.09.2011 18:44  @Mishka#14.09.2011 18:43
+
-1
-
edit
 
Mishka> Нет. :P Ты даже этого не знаешь. Читай стандарты — они рулез.
Хорошо, скажем на PC оно как будет?
   6.0.26.0.2
US Mishka #14.09.2011 18:54  @Реконструктор#14.09.2011 18:44
+
-
edit
 

Mishka

модератор
★★★
Реконструктор> Хорошо, скажем на PC оно как будет?
Боже.

Вот тебе цитати из ISO/IEC 14882:2003(E):
9.6 Bit-fields [class.bit]
1 A member-declarator of the form
identifieropt : constant-expression
specifies a bit-field; its length is set off from the bit-field name by a colon. The bit-field attribute is not part
of the type of the class member. The constant-expression shall be an integral constant-expression with a
value greater than or equal to zero. 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. Allocation of bit-fields within a class object
is implementation-defined. Alignment of bit-fields is implementation-defined. Bit-fields are packed into
some addressable allocation unit. [Note: bit-fields straddle allocation units on some machines and not on
others. Bit-fields are assigned right-to-left on some machines, left-to-right on others. ]
 

Для MS компиляторов читать http://msdn.microsoft.com/en-us/library/yszfawxh%28v=vs.80%29.aspx раздел Microsoft Specific. А так зависит от людей, делающих компилятор, бо по стандарту им отдано на откуп.
   6.06.0
1 2 3 4 5 6 7

в начало страницы | новое
 
Поиск
Поддержка
Поддержи форум!
ЯндексЯндекс. ДеньгиХочу такую же кнопку
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru