Вот приличный заголовок, что и не говори. На первой странице. Даже и не важно что там внутри. Просто приятно открыть Хабр в присутствии посторонних, что бы все видели, что читаю я - Метод критической цепи: эффективное управление проектами. Сразу уважение у окружающих людей. Общечеловеческая жизненная карма растёт. Близкие опять же понимают - я делом занят, а не в какой-то там социальной сети вишу.
Ото зайдёшь бывает, а там что-нить типа - Кармазадроты готовят очередную революцию. Тьфу... Да. Стыдоба.
Да я вообще супротив этого вопроса параноиком выгляжу. Дома два винта, на которых всё моё сдублировано, архивация на ДВД регулярно. В оффисе всё что актуально лежит. И все активные проекты под SVN на хостах в разных странах. Локальные землетрясения мне абсолютно не страшны. Ну разве что НЛО или адронный колайдер. Посему такие детские вопросы только улыбку и вызывают. :-)
Мелочные какие-то опросики пошли... Того и гляди скоро будут спрашивать - носите ли вы кошелёк в левом кармане на замочке или предпочитаете правый на липучке. Пока уже прямо спросить - предпочитаете ли вы миссионерскую позу или порой таки балуетесь позой 69. Ото детский сад какой-то... Ну чесслово.
Оно и мне так кажется, но если нет даже внятных разделителей между сообщениями, то надо сразу в тексте увидеть некую глубокую мудрость, что бы двигать глаза дальше.
По сути - примерно так.
Видимо, на сегодняшний день, не совсем точно называть SWT решением от IBM. Проект координируется некомерческой организацией Eclipse Foundation, которая таки была создана при сильном участии IBM. Есть и другие участники альянса. По сути из под крыла IBM пустили в Open Source, создав альянс Eclipse. SWT он не то что бы даже использует родные виджеты ОС, он явяется Java слоем к графическим библитекам той среды, для которой собирается приложение. К примеру к Gtk+. Делает он это через Java Native Interface (JNI).
Собака зарыта вот в чём. Абап, с канонической точки зрения, далеко не такой уж хороший язык. К тому же он динамический. Это не плохо и не хорошо, это более опасно с точки зрения надёжности кода. К тому же, как правило, желательно понимать устройство самой системы SAP. Ну и, учитывая тот факт, что программирование на АBAP часто связано с детальной подстройкой системы для конечного заказчика, а заказчик, ставящий систему SAP, это далеко не бедный заказчик, то тщательное ковыряние в его бизнесе оплачивается достаточно хорошо.
Согласен, Swing вообще очень красиво и грамотно спроектирован. Там есть чему поучиься. Просто в данной заметке я хотел коснуться именно возможности делать красивый графический интерфейс на Java. Ибо, по человечески, обидно в очередной раз читать, что Java выглядит некрасиво. В то время, как именно Java и даёт хорошую возможность делать крайне элегантные интерфейсы.
У вас всегда имеется три элементарных возможности:
1. Взять один из многих профессионально разработанных визуальных интерфейсов и “включить” его в вашем приложении. Это строчки 4 кода и пару минут времени. Интерфейсов на рынке много, главное тут знать, что такая возможность есть и вы абсолютно не обязаны использовать тот интерфейс, который включается фреймворком по умолчанию.
2. Вы нашли подходящий вам интерфейс, вас всё в нём устраивает, однако хотелось бы точно такой же, но с перламутровыми пуговицами. Вы чертыхаетесь про себя, засучиваете рукава, наследуете пуговицу, и в пару часов, мучительно подобрав подходящий оттенок перламутровости, делаете все пуговицы изысканно перламутровыми. Все прутся.
3. Вы по настоящему серьёзный мен. Вас категорически не устраивает всё то барахло, которое в изобилии присутствует на рынке. Вы звякаете Сальвадору Дали и просите его сделать для вас пару набросков поприличней. Сажаете програмера и он в месяц кладёт их на код. В силу чёткой очерченности всей интерьерной рисовки, эта работа абсолютно никак не затрагивает разработку других частей приложения, даже интерфейсных. Получаете на выходе шедевр, тем самым заставляя С. Джобса нервно курить в стороне.
Если говорить об индустриальном мультиплатформенном desktop-приложение, то на сегодняшний день выбор практически однозначен. Это джава и только джава. Все остальные языки имеют свои минусы и плюсы, но для их использования нужны некие особенные обоснования. Выбор между C++ и Питоном крайне неудачен. Не потому, что они плохи, а потому что их специфика крайне затруднит разработку приложения. Хотя, разумеется понятно, что писать можно хоть в двоичных кодах. :-)
Для Windows, C# возможно был бы возможным выбором, хотя опять же, если говорить о платформе в целом, то платформа Джава имеет на голову больше наработок и стандартным образом накрывает заметно большее количество технологий.
Если говорить об индустриальном мультиплатформенном desktop-приложение, то на сегодняшний день выбор практически однозначен. Это джава и только джава. Все остальные языки имеют свои минусы и плюсы, но для их использования нужны некие особенные обоснования. Выбор между C++ и Питоном крайне неудачен. Не потому, что они плохи, а потому что их специфика крайне затруднит разработку приложения. Хотя, разумеется понятно, что писать можно хоть в двоичных кодах. :-)
Для Windows, C# возможно был бы возможным выбором, хотя опять же, если говорить о платформе в целом, то платформа Джава имеет на голову больше наработок и стандартным образом накрывает заметно большее количество технологий.
По пункту 1)
Идея абсолютно не классная и никогда не будет реализована в хорошем языке. Понимаете - конструктор это метод конструирующий объект. Объекты создаются строго в порядке иерархии наследования. Каждый потомок в чём-то потенциально опирается на предка. Возможность вызывать конструктор в любой строке, по сути означает, что будет возможность выполнять некий код потомка до того, как сконструирован его предок. Грубо говоря, детёнок начинает говорить до того, как родилась его мама. :-)
В джава также нельзя этого делать. Там просто синтаксически вызов конструктора предка идёт в первой строке конструктора потомка. Строго в первой и нигде больше. Исключительно для того, что бы показать каким конкретно конструктором мы хотим создать предка. Никакую функцию в параметр также вставить нельзя. Компилятор выдаст ошибку.
Я не смешной. Смешными тут выглядят те, кто с вилами наперевес бросился на защиту обиженного работника и на минусование моей кармы. При этом абсолютно не заметив того простого факта, что в заметке было высказано мнение только одной стороны. Занимать же чью-либо сторону не имея всей полноты картины, штука по жизни довольно опасная. Не находите?
Что мы имеем объективно? А объективно мы имеем заезженную ситуацию, когда два человека, знающие друг друга несколько лет, договариваются о неких финансовых условиях наедине. Через полгода, один из них, вываливает публично компромат на другого. При том, что абсолютно не понятно, выскажется другая сторона или нет. Для меня это уже показатель порядочности человека. Это раз.
Ну и два - я не занимаю чью-либо сторону в данном споре, ибо действительно не знаю что произошло. Но, к примеру, любой бухгалтер вам в пять секунд расскажет как можно абсолютно законно не увольнять человека и не платить ему ЗП и налоги. Хоть в отпуск отправить, хоть на часть ставки перевести. То есть получается, что автора топика судьба его оформления на работе совершенно не интересовала? Ну так и где здесь взвешенная позиция взрослого человека?
Хорошая статья. Правильная. Редкость для Хабра, задвинутого на ущербном PHP.
А по сути - по сути, если бы бабушка имела член, то она бы уже была дедушкой. С появлением Java и С# это всё выглядит как агония. Смысл С++ в том и стоит, что улучшить его сложно. Его миссия в эффективности. Правильно комитет сказал - производительность наше всё! Если его расширить за счёт удобства и безопастности, то производительность упадёт и это будет другой, тож отличнейшиё язык, называемый в быту Джавой!
Ото зайдёшь бывает, а там что-нить типа - Кармазадроты готовят очередную революцию. Тьфу... Да. Стыдоба.
Будем и в блог посматривать. :-)
Видимо, на сегодняшний день, не совсем точно называть SWT решением от IBM. Проект координируется некомерческой организацией Eclipse Foundation, которая таки была создана при сильном участии IBM. Есть и другие участники альянса. По сути из под крыла IBM пустили в Open Source, создав альянс Eclipse. SWT он не то что бы даже использует родные виджеты ОС, он явяется Java слоем к графическим библитекам той среды, для которой собирается приложение. К примеру к Gtk+. Делает он это через Java Native Interface (JNI).
1. Взять один из многих профессионально разработанных визуальных интерфейсов и “включить” его в вашем приложении. Это строчки 4 кода и пару минут времени. Интерфейсов на рынке много, главное тут знать, что такая возможность есть и вы абсолютно не обязаны использовать тот интерфейс, который включается фреймворком по умолчанию.
2. Вы нашли подходящий вам интерфейс, вас всё в нём устраивает, однако хотелось бы точно такой же, но с перламутровыми пуговицами. Вы чертыхаетесь про себя, засучиваете рукава, наследуете пуговицу, и в пару часов, мучительно подобрав подходящий оттенок перламутровости, делаете все пуговицы изысканно перламутровыми. Все прутся.
3. Вы по настоящему серьёзный мен. Вас категорически не устраивает всё то барахло, которое в изобилии присутствует на рынке. Вы звякаете Сальвадору Дали и просите его сделать для вас пару набросков поприличней. Сажаете програмера и он в месяц кладёт их на код. В силу чёткой очерченности всей интерьерной рисовки, эта работа абсолютно никак не затрагивает разработку других частей приложения, даже интерфейсных. Получаете на выходе шедевр, тем самым заставляя С. Джобса нервно курить в стороне.
Для Windows, C# возможно был бы возможным выбором, хотя опять же, если говорить о платформе в целом, то платформа Джава имеет на голову больше наработок и стандартным образом накрывает заметно большее количество технологий.
Для Windows, C# возможно был бы возможным выбором, хотя опять же, если говорить о платформе в целом, то платформа Джава имеет на голову больше наработок и стандартным образом накрывает заметно большее количество технологий.
Идея абсолютно не классная и никогда не будет реализована в хорошем языке. Понимаете - конструктор это метод конструирующий объект. Объекты создаются строго в порядке иерархии наследования. Каждый потомок в чём-то потенциально опирается на предка. Возможность вызывать конструктор в любой строке, по сути означает, что будет возможность выполнять некий код потомка до того, как сконструирован его предок. Грубо говоря, детёнок начинает говорить до того, как родилась его мама. :-)
В джава также нельзя этого делать. Там просто синтаксически вызов конструктора предка идёт в первой строке конструктора потомка. Строго в первой и нигде больше. Исключительно для того, что бы показать каким конкретно конструктором мы хотим создать предка. Никакую функцию в параметр также вставить нельзя. Компилятор выдаст ошибку.
Что мы имеем объективно? А объективно мы имеем заезженную ситуацию, когда два человека, знающие друг друга несколько лет, договариваются о неких финансовых условиях наедине. Через полгода, один из них, вываливает публично компромат на другого. При том, что абсолютно не понятно, выскажется другая сторона или нет. Для меня это уже показатель порядочности человека. Это раз.
Ну и два - я не занимаю чью-либо сторону в данном споре, ибо действительно не знаю что произошло. Но, к примеру, любой бухгалтер вам в пять секунд расскажет как можно абсолютно законно не увольнять человека и не платить ему ЗП и налоги. Хоть в отпуск отправить, хоть на часть ставки перевести. То есть получается, что автора топика судьба его оформления на работе совершенно не интересовала? Ну так и где здесь взвешенная позиция взрослого человека?
А по сути - по сути, если бы бабушка имела член, то она бы уже была дедушкой. С появлением Java и С# это всё выглядит как агония. Смысл С++ в том и стоит, что улучшить его сложно. Его миссия в эффективности. Правильно комитет сказал - производительность наше всё! Если его расширить за счёт удобства и безопастности, то производительность упадёт и это будет другой, тож отличнейшиё язык, называемый в быту Джавой!