Переход на Java
От: opener  
Дата: 25.02.09 08:42
Оценка: :)
Насколько сложно перейти на Java после С++? Проще/сложнее сама жаба по сравнению с С++? По моим нынешним представлениям вроде проще. И какого тогда хрена у жаба-программистов зарплаты больше?

01.03.09 01:48: Перенесено модератором из 'C/C++' — Кодт
Re: Переход на Java
От: Аноним  
Дата: 25.02.09 08:51
Оценка:
Здравствуйте, opener, Вы писали:

O>Насколько сложно перейти на Java после С++? Проще/сложнее сама жаба по сравнению с С++? По моим нынешним представлениям вроде проще. И какого тогда хрена у жаба-программистов зарплаты больше?

Во первых зарплата определяется не сложностью работы, а тем сколько бабла приносят ее результаты
Во вторых я бы не говорил так однозначно
Re: Переход на Java
От: ArtK  
Дата: 25.02.09 09:03
Оценка: +2
Здравствуйте, opener, Вы писали:

O>Насколько сложно перейти на Java после С++? Проще/сложнее сама жаба по сравнению с С++? По моим нынешним представлениям вроде проще. И какого тогда хрена у жаба-программистов зарплаты больше?


Сам недавно начал делать проект на Java, до этого работал только с C++. imho язык чуть проще, но своих нюансов хватает. Основную сложность составляет изучения сопутствующих технологий, без которых в Java никак. А вообще переход с C++ на Java подразумевает смену области деятельности, т.к. языки созданы для решения разных задач.
Re: Переход на Java
От: Аноним  
Дата: 26.02.09 07:57
Оценка: +1
Не проще. Java другая. Например, GC предполагает другие идиомы создания и удаления объектов. Есть еще распространенное заблуждение, что в Java нет утечек памяти... Есть. Но они возникают гораздо реже, чем в C/C++.

И главное — библиотеки. В Java создано огромное множество кросс-платформенных библиотек. В С/С++ немного не так. Здесь же чувствуется единство этих библиотек. Не случайно, Java часто называют "платформой".
Re: Переход на Java
От: yumi  
Дата: 26.02.09 08:12
Оценка:
Здравствуйте, opener, Вы писали:

O>Насколько сложно перейти на Java после С++? Проще/сложнее сама жаба по сравнению с С++? По моим нынешним представлениям вроде проще. И какого тогда хрена у жаба-программистов зарплаты больше?


Смотря, что значит перейти на Java. Если изучить язык, то где-то неделя примерно. Как язык, она действительно проще, это типичный bondage & discipline язык

И на какую именно Джаву, J2ME, J2SE, J2EE... Изучение не только языка, но и изучение сопутствующих подходов, библиотек, требует чуть больше времени.

Насчет зарплат, то она не коррелирует со сложностью инструмента, а зависит от производительности труда программиста, использующего тот или иной инструмент.
Lisp is not dead. It’s just the URL that has changed:
http://clojure.org
Re: Переход на Java
От: MasterZiv СССР  
Дата: 26.02.09 15:33
Оценка: +1 -8 :))) :))
opener пишет:

> Насколько сложно перейти на Java после С++?


Сложно будет сдержать рвотный рефлекс, самопроизвольно
возникающий при виде кода на Java и спецификации языка.

Проще/сложнее сама жаба по
> сравнению с С++?

Во много-много раз. Java -- вообще примитивный язык.

По моим нынешним представлениям вроде проще. И какого
> тогда хрена у жаба-программистов зарплаты больше?

Там не язык сложнее. Там сложнее всё остальное.
Потому что надо компенсировать убогость языка сложностью
программ, которые на нём пишут.

Если ты тупо знаешь язык, то тебе ничего платить не
будут. Если ты к этому ещё знаешь всяческие EJB/STRUTS/JPA/AJAX
и прочую херню, то -- да, тут тебе отвалят.
Posted via RSDN NNTP Server 2.1 beta
Re[2]: Переход на Java
От: MasterZiv СССР  
Дата: 26.02.09 15:35
Оценка: -2
Аноним 321 пишет:

> нет утечек памяти... Есть. Но они возникают гораздо реже, чем в C/C++.


Есть другое мнение (не моё). Что там утечки ВООБЩЕ ПОСТОЯННО ВОЗНИКАЮТ.

Posted via RSDN NNTP Server 2.1 beta
Re[3]: Переход на Java
От: unix_hater  
Дата: 26.02.09 16:14
Оценка:
Здравствуйте, MasterZiv, Вы писали:

MZ>Аноним 321 пишет:


>> нет утечек памяти... Есть. Но они возникают гораздо реже, чем в C/C++.


MZ>Есть другое мнение (не моё). Что там утечки ВООБЩЕ ПОСТОЯННО ВОЗНИКАЮТ.


MZ>


странное мнение. если говорить о утечках памяти — есть gc, в чем проблема? а вот с утечками ресурсов — ну, тут уж никакой язык не поможет, это логическая ошибка.
Re[4]: Переход на Java
От: MasterZiv СССР  
Дата: 26.02.09 17:13
Оценка: +1 -5 :))) :)))
unix_hater пишет:

> странное мнение. если говорить о утечках памяти — есть gc, в чем

> проблема? а вот с утечками ресурсов — ну, тут уж никакой язык не
> поможет, это логическая ошибка.

Имеется в виду то, что GC — и есть одна большая утечка памяти.
Постоянная. Мнение — не моё, ещё раз.
Posted via RSDN NNTP Server 2.1 beta
Re[4]: Переход на Java
От: Аноним  
Дата: 27.02.09 09:45
Оценка: +1
_>странное мнение. если говорить о утечках памяти — есть gc, в чем проблема? а вот с утечками ресурсов — ну, тут уж никакой язык не поможет, это логическая ошибка.

А в чем отличие освобождения памяти от освобождения ресурсов? До появления gc ошибки освобождения памяти точно так же назвали бы логической ошибкой, нет?
Re: Переход на Java
От: LaptevVV Россия  
Дата: 27.02.09 13:13
Оценка:
Здравствуйте, opener, Вы писали:

O>Насколько сложно перейти на Java после С++? Проще/сложнее сама жаба по сравнению с С++? По моим нынешним представлениям вроде проще. И какого тогда хрена у жаба-программистов зарплаты больше?

1. Меня лично напрягала необходимость обязательно писать обработку исключений.
2. Большая библиотека. Гораздо больше С++ и разнообразней.
Ну. еще памятью управлять явно не нужно.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Переход на Java
От: srggal Украина  
Дата: 27.02.09 14:14
Оценка:
Здравствуйте, opener, Вы писали:

O>Насколько сложно перейти на Java после С++? Проще/сложнее сама жаба по сравнению с С++? По моим нынешним представлениям вроде проще. И какого тогда хрена у жаба-программистов зарплаты больше?


Перешел, скучаю по С++, особенно при работе с Generic'ами...
Поскольку нищи у языков разные, то переход на Java подразумевает изучение кучи всего помимо Java, но об этом уже писали.

Что такое "куча всего" в моём случае (из основного, что вспомнилось):
JPA/Eclipselink
Spring/Security/orm/rcp
JAX-WS/WS-I
OSGi
Ant
Maven
AOP/AspectJ
ЗЫ
Самое стремное по началу -- gc...
Re[2]: Переход на Java
От: Аем Вопля  
Дата: 27.02.09 21:57
Оценка: 2 (1) +2 -2
Кто вообще сказал, что на C++ часто возникают утечки памяти? Если придерживаться определенного стиля кодирования, и руки у программистов растут из правильного места, то утечек не будет.

Нашему проекту на C и C++ уже пара лет, за все это время у нас возникла ровно одна (1 — одна) утечка памяти, которая была исправлена за пять минут, и то она возникла потому, что программист, который написал код, имеет привычку писать неаккуратно.

Зато от коллег, пишущих на C#, я много раз слышал разговоры об утечках.

Ключевое слово using их спасает. А то у них вообще был бы практически C.

Вот как мучаются те, кто пишет на J#:

import System.*;
import System.IO.*;
import System.Text.*;

class Test
{
    public static void main(String[] args)
    {
        String path = "c:\\temp\\MyTest.txt";

        // Delete the file if it exists.
        if (!(File.Exists(path))) {
            // Create the file.
            FileStream fs = File.Create(path);
            try {
                ubyte info[] =(new UTF8Encoding(true)).GetBytes("This is some" 
                    + " text in the file.");

                // Add some information to the file.
                fs.Write(info, 0, info.length);
            }
            finally {
                fs.Dispose();
            }
        }
        // Open the stream and read it back.
        FileStream fs = File.Open(path, FileMode.Open);

        try {
            ubyte b[] = new ubyte[1024];
            UTF8Encoding temp = new UTF8Encoding(true);

            while (fs.Read(b, 0, b.length) > 0) {
                Console.WriteLine(temp.GetString(b));
            }
        }
        finally {
            fs.Dispose();
        }
    } //main
} //Test


Ну это же точно как в C! Забудешь закрыть файл — получишь утечку ресурсов. И все надо закрывать руками, отслеживая ветви выполнения.

Конечно, это же совсем не то, что «неуправляемый» C++!

#include <fstream>
using namespace std;
int main()
{
    ifstream file("file.txt");

    if (!file)
    {
        return 1;
    }

    int n;

    file >> n;

    if (n < 0)
    {
        // И не надо вручную ничего закрывать.
        return 1;
    }

    return 0;
}
Re[5]: Переход на Java
От: Пацак Россия  
Дата: 27.02.09 22:14
Оценка: :)))
Здравствуйте, MasterZiv, Вы писали:

MZ>Имеется в виду то, что GC — и есть одна большая утечка памяти.

MZ>Постоянная. Мнение — не моё, ещё раз.

Ну считай, что минусы тогда тоже не тебе.
Ку...
Re[3]: Переход на Java
От: Пацак Россия  
Дата: 27.02.09 22:21
Оценка:
Здравствуйте, Аем Вопля, Вы писали:

АВ>Кто вообще сказал, что на C++ часто возникают утечки памяти?

...
АВ>Вот как мучаются те, кто пишет на J#:

АВ>
...
АВ>


Теперь внимание, вопрос: какое отношение имеют утечки памяти к приведенному фрагменту кода?
Ку...
Re[5]: Переход на Java
От: drol  
Дата: 28.02.09 09:54
Оценка: +3 -1
Здравствуйте, Аноним, Вы писали:

А>А в чем отличие освобождения памяти от освобождения ресурсов?


В масштабе. Память есть самый интенсивно используемый ресурс. Посему и необходимость снижения возможностей для ошибок в управлении ею стоит в первых рядах.
Re[4]: Переход на Java
От: Аем Вопля  
Дата: 28.02.09 12:15
Оценка: :))
П>Теперь внимание, вопрос: какое отношение имеют утечки памяти к приведенному фрагменту кода?

Файл — это участок памяти, распределенной на энергонезависимом запоминающем устройстве.
Re[3]: Переход на Java
От: CreatorCray  
Дата: 28.02.09 13:25
Оценка:
Здравствуйте, Аем Вопля, Вы писали:

АВ>Кто вообще сказал, что на C++ часто возникают утечки памяти? Если придерживаться определенного стиля кодирования, и руки у программистов растут из правильного места, то утечек не будет.

+1
У меня в проекте-тесте для либы даже спецом есть код который намеренно делает утечку чтоб убедится что BoundsChecker не поломался вдруг и мышек все еще ловит.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Переход на Java
От: CreatorCray  
Дата: 28.02.09 13:25
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>2. Большая библиотека. Гораздо больше С++ и разнообразней.

В С++ декларируется "принцип платишь только за то, что реально используешь". В соответствии с ним — поставляется жизненно необходимый минимум.

Вот мне всегда было непонятно, почему в плюс языка всегда пытаются отнести большую стандартную библиотеку?
Это конечно плюс, но не самого языка.

ИМХО появление новых языков с большими библиотеками в комплекте необходимая мера в последнее время.
Во сколько раз меньше народу в момент появления той же Java стало бы писать на ней не будь под нее большой библы с готовыми велосипедами?
Поэтому хочешь продвинуть язык — сделай так, чтоб начать лабать на нем можно было сразу. Отсюда наличие большой библиотеки просто must have.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: Переход на Java
От: drol  
Дата: 28.02.09 13:53
Оценка:
Здравствуйте, Аем Вопля, Вы писали:

П>>Теперь внимание, вопрос: какое отношение имеют утечки памяти к приведенному фрагменту кода?


АВ>Файл — это участок памяти, распределенной на энергонезависимом запоминающем устройстве.


Не очень понятно что Вы конкретно имели в виду, однако, в любом случае, утечка всё равно не вытанцовывается.
Ну не вызвали Dispose() у FileStream'а, и что ? "Распределённой на энергонезависимом запоминающем устройстве" памяти в виде файла от этого ни холодно, ни жарко. Как был файл, так он и остался. Особенно при работе "только на чтение"
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.