Как технарю из России стать программером в США за 150К

ddv
Уже с Приветом
Posts: 481
Joined: 04 Jul 2005 17:07
Location: Москва->Staten Island NY

Re: Как технарю из России стать программером в США за 150К

Post by ddv »

crypto5 wrote:Какой конкретно более полной информации? Джава например может знать о наборе инструкций процессора целевой системы, а с++ компиллер нет.

Набор инструкций для C++ компилятора практически известен...А оптимальный SSE4 и java наврятли сгенерит.
User avatar
Brazen
Уже с Приветом
Posts: 7412
Joined: 03 Apr 2004 09:35
Location: 1st Rock From The Moon

Re: Как технарю из России стать программером в США за 150К

Post by Brazen »

zzhou wrote:
Brazen wrote:
zzhou wrote:Ни разу за 10+ лет не приходилось такое делать. Но вот как надо извращатся в С чтобы XML разобрать или до БД добраться - это я видел.
Потому C такой и компактный, что все фичи в библиотеках.
Правильно. В разных библиотеках разной степени кривизны. Но настоящие Сишники всё равно будут руками с нуля писать - чтобы не мучатся с чужими багами.

Аналог Hibernate на С++ насколько зрелый есть? Или какой-нибуть JSF.

XML и БД на C# и Яве - часть основной библиотеки. Без них не бывает.
Hibernate - это внешняя библиотека. И в ней таки есть баги. JSF - тягучий кусок дерьма. Могли бы что-нибудь поприличнее вспомнить, хотя бы простецкий JSP или компонентный Wicket, но не JSF. Спасибо, этого не надо.

БД на жабе - это низкоуровневые вещи типа послать запрос, получить таблицу. Или вместо таблицы получить исключение, которое потом через десять этажей надо прокидывать. Минимальный уровень, на котором работа с БД на жабе становится приятной - это iBatis. Таки библиотека. Неродная.

XML? Ну да, в нынешней джаве уже включили парсеры и построители XML в пакет, который можно скачать с джавского сайта, но все равно это не стандартная часть языка. Тоже библиотека, хоть и официальная.

--

Ладно, господа. Вам задали написать систему управления ядерной станции. Или аэродромного локатора и диспетчерской службы. Или систему наведения антенн спутника. На чем будете писать?
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Как технарю из России стать программером в США за 150К

Post by crypto5 »

ddv wrote:
Zombie416 wrote: Вы зря это все противопоставляете. В одном случае, на клиентскую машину приезжает исходный код (уже parsed и готовый к быстрой компиляции), в другом - уже готовые модули откомпилированные в машинный код на другой машине. В первом случае есть гораздо больше возможностей оптимизации под конкретные особенности выполнения, на основе реальной статистики и реального процессора.
Весь ваш мизерный теоретический выигрышь от лучшей оптимизации будет с лихвой похерен под кучей ненужных вызовов, runtime проверок и т.п.
Я хочу еще раз спросить, а чего вы так взьелись? Никто не отбирает у С++ рынок высокопроизводительных апликух. Просто оказывается что для очень большого круга задач производительности джавы и с# более чем достаточно, а игры и числодробилки пишите себе на с++.
In vino Veritas!
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Как технарю из России стать программером в США за 150К

Post by crypto5 »

ddv wrote:
crypto5 wrote:Какой конкретно более полной информации? Джава например может знать о наборе инструкций процессора целевой системы, а с++ компиллер нет.

Набор инструкций для C++ компилятора практически известен...А оптимальный SSE4 и java наврятли сгенерит.
Как обычно все скрыто в том насколько "практически известен" и насколько "наврятли" ;-)
Ну и вы все еще не ответили на вопрос, какой дополнительной инфой обладает С++ компилятор, и которая не известна джаве?
In vino Veritas!
ddv
Уже с Приветом
Posts: 481
Joined: 04 Jul 2005 17:07
Location: Москва->Staten Island NY

Re: Как технарю из России стать программером в США за 150К

Post by ddv »

zzhou wrote: 2. На Яве есть "куча", которой заправляет VM. Т.е. когда делается new... - то нет автоматического malloc - вместо этого просто VM учитывает что такие-то 20 байт заняты таким-то объектом (malloc выполняется только когда куча уже заполнена).
какие всетаки наивные эти java программисты...а "учитывает" VM где???
В C++ тоже есть менеджер памяти который забирает память у системы кусками, а потом раздает и менеджает ее сам.
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Как технарю из России стать программером в США за 150К

Post by crypto5 »

Brazen wrote:Ладно, господа. Вам задали написать систему управления ядерной станции. Или аэродромного локатора и диспетчерской службы. Или систему наведения антенн спутника. На чем будете писать?
Вполне можно написать на миксе, ЮИ и всякую бухгалтерию на джаве а то что поближе к железу на С, а вы это к чему спрашиваете?
In vino Veritas!
ddv
Уже с Приветом
Posts: 481
Joined: 04 Jul 2005 17:07
Location: Москва->Staten Island NY

Re: Как технарю из России стать программером в США за 150К

Post by ddv »

crypto5 wrote:Ну и вы все еще не ответили на вопрос, какой дополнительной инфой обладает С++ компилятор, и которая не известна джаве?
Как минимум :
1. Все неиспользуемые в данном приложение модули, поля, классы и т.п. На основании этого их можно выкинуть,порезать и вставить внутрь исполняемого модуля.
2. Inline функции, процедуры и т.п.
Last edited by ddv on 11 Feb 2011 20:19, edited 1 time in total.
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Как технарю из России стать программером в США за 150К

Post by crypto5 »

ddv wrote:
zzhou wrote: 2. На Яве есть "куча", которой заправляет VM. Т.е. когда делается new... - то нет автоматического malloc - вместо этого просто VM учитывает что такие-то 20 байт заняты таким-то объектом (malloc выполняется только когда куча уже заполнена).
какие всетаки наивные эти java программисты...а "учитывает" VM где???
В C++ тоже есть менеджер памяти который забирает память у системы кусками, а потом раздает и менеджает ее сам.
Проблема только в том что такие менеджеры обычно абстрагированы от системы многопоточности, и не могут эфективно разбивать кучу на области для потоков, а в джаве все с этим хорошо.
In vino Veritas!
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Как технарю из России стать программером в США за 150К

Post by crypto5 »

ddv wrote:
crypto5 wrote:Ну и вы все еще не ответили на вопрос, какой дополнительной инфой обладает С++ компилятор, и которая не известна джаве?
Как минимум :
1. Все неиспользуемые модули, поля, классы и т.п.
2. Inline функции, процедуры и т.п.
В джаве хотспот тоже не компилирует неиспользуемые поля и классы. Что там дальше?
Про инлайн я вообще не понял? Я тоже знаю такое слово..
In vino Veritas!
ddv
Уже с Приветом
Posts: 481
Joined: 04 Jul 2005 17:07
Location: Москва->Staten Island NY

Re: Как технарю из России стать программером в США за 150К

Post by ddv »

crypto5 wrote:Проблема только в том что такие менеджеры обычно абстрагированы от системы многопоточности, и не могут эфективно разбивать кучу на области для потоков, а в джаве все с этим хорошо.
С чего это они не могут разбивать кучу на области для потоков? Могут, того в C++ это не поможет,т.к. один поток может захотеть удалить память выделенную в другом потоке.
User avatar
Brazen
Уже с Приветом
Posts: 7412
Joined: 03 Apr 2004 09:35
Location: 1st Rock From The Moon

Re: Как технарю из России стать программером в США за 150К

Post by Brazen »

crypto5 wrote:
ddv wrote:
crypto5 wrote:Ну и вы все еще не ответили на вопрос, какой дополнительной инфой обладает С++ компилятор, и которая не известна джаве?
Как минимум :
1. Все неиспользуемые модули, поля, классы и т.п.
2. Inline функции, процедуры и т.п.
В джаве хотспот тоже не компилирует неиспользуемые поля и классы. Что там дальше?
Про инлайн я вообще не понял? Я тоже знаю такое слово..
Я тоже не понял. Все это стандартные фичи компилятора. Инлайнит сам, если видит, что так быстрее.
nightmare2
Уже с Приветом
Posts: 7187
Joined: 31 Jan 2005 15:06
Location: GA

Re: Как технарю из России стать программером в США за 150К

Post by nightmare2 »

crypto5 wrote:
Brazen wrote:Ладно, господа. Вам задали написать систему управления ядерной станции. Или аэродромного локатора и диспетчерской службы. Или систему наведения антенн спутника. На чем будете писать?
Вполне можно написать на миксе, ЮИ и всякую бухгалтерию на джаве а то что поближе к железу на С, а вы это к чему спрашиваете?
+1
Vaiyo A-O, A Home Va Ya Ray, Vaiyo A-Rah, Jerhume Brunnen G!
zzhou
Уже с Приветом
Posts: 567
Joined: 06 Dec 2009 20:50
Location: Kiev, UA -> Cupertino, CA

Re: Как технарю из России стать программером в США за 150К

Post by zzhou »

Brazen wrote:Hibernate - это внешняя библиотека. И в ней таки есть баги. JSF - тягучий кусок дерьма. Могли бы что-нибудь поприличнее вспомнить, хотя бы простецкий JSP или компонентный Wicket, но не JSF. Спасибо, этого не надо.

БД на жабе - это низкоуровневые вещи типа послать запрос, получить таблицу. Или вместо таблицы получить исключение, которое потом через десять этажей надо прокидывать. Минимальный уровень, на котором работа с БД на жабе становится приятной - это iBatis. Таки библиотека. Неродная.
Hibernate - очень элегантное и удобное решений, которое преотлично работает в массе больших проектов и отлично экономит силы разработчиков.
Brazen wrote:Ладно, господа. Вам задали написать систему управления ядерной станции. Или аэродромного локатора и диспетчерской службы. Или систему наведения антенн спутника. На чем будете писать?
NASA марсоходом на Яве управляет. Ничего они в технологиях не понимают!
Zombie416
Уже с Приветом
Posts: 8881
Joined: 17 Jun 2003 04:41

Re: Как технарю из России стать программером в США за 150К

Post by Zombie416 »

ddv wrote:Весь ваш мизерный теоретический выигрышь от лучшей оптимизации будет с лихвой похерен под кучей ненужных вызовов, runtime проверок и т.п.
Совершенно необязательно. Как раз 100% managed код гораздо лучше поддается оптимизации и исключению ненужных вызовов и runtime проверок. И это особенно заметно когда ваша программа не живет в собственном мире вставляя миллионы раз в список, а активно общается с системой и другими программами по IPC.

Элементарный (пусть и надуманный) пример. Ваша программа требует нечто от системы пользователя, например зовет функцию get_x() 500 тыщ раз, и функция эта "дорогая", с user mode->kernel mode и т.д. На некоторых системах возвращенное значение будет константой, на других - нет. Так что кешировать возвращенное значение внутри вы не можете.

Если вы присылаете готовый нативный код зовующий эту функцию, он будет 500 тыщ раз звать ее, во всех случаях. Если, код managed, то при его компиляции в нативный код системным компилятором есть возможность заменить значение на константу соответствующую условиям выполнения на конкретной машине.
User avatar
Brazen
Уже с Приветом
Posts: 7412
Joined: 03 Apr 2004 09:35
Location: 1st Rock From The Moon

Re: Как технарю из России стать программером в США за 150К

Post by Brazen »

crypto5 wrote:
Brazen wrote:Ладно, господа. Вам задали написать систему управления ядерной станции. Или аэродромного локатора и диспетчерской службы. Или систему наведения антенн спутника. На чем будете писать?
Вполне можно написать на миксе, ЮИ и всякую бухгалтерию на джаве а то что поближе к железу на С, а вы это к чему спрашиваете?
Да так, обстановку разрядить :) Но я бы не стал писать даже UI для ядерной станции на джаве.

Return to “Работа и Карьера в IT”