tag:blogger.com,1999:blog-654279083390275842.post9217073928914239067..comments2024-03-19T12:22:43.654+03:00Comments on Размышлизмы eao197: [prog.thoughts] Legacy for the masses?eao197http://www.blogger.com/profile/17283739752119445290noreply@blogger.comBlogger7125tag:blogger.com,1999:blog-654279083390275842.post-33617117436038066162019-02-26T13:27:30.362+03:002019-02-26T13:27:30.362+03:00>выгоднее это делать на Java, чем переписывать ...>выгоднее это делать на Java, чем переписывать старый кусок на Kotlin<br /><br />Кажися, джетбрейновская IDEA конвертирует джаву в котлин автоматически одной кнопкой.Dmitry Popovhttps://www.blogger.com/profile/07584454083425330761noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-5870342754029510142019-02-26T09:29:23.391+03:002019-02-26T09:29:23.391+03:00> Не только думают, но уже есть результаты. Kot...> Не только думают, но уже есть результаты. Kotlin очень даже позволяет писать новый код на Kotlin и использовать старый на Java<br /><br />Удивил. Еще можно привести в пример С++, который подтянул С и неплохо на этом поимел.<br /><br />Речь шла про другое - не просто использовать библиотеки родительского языка, а всосать библиотеки неродственного.Grigory Demchenkohttps://www.blogger.com/profile/00767146690798788624noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-53991151903467546192019-02-26T08:58:20.397+03:002019-02-26T08:58:20.397+03:00> Пока никто не думает в этом направлении, а зр...> Пока никто не думает в этом направлении, а зря.<br /><br />Об этом думают и пытаются это делать все время, что я имею отношение к программированию. Трансляторы из одного языка в другой то и дело обсуждаются. В районе 2008-го года я сам на RSDN-е постил новость про транслятор из Java в D, с помощью которого пытались преобразовать Java-библиотеку SWT в библиотеку DWT (и вроде как это даже удалось, т.к. DWT все еще существует: https://github.com/d-widget-toolkit/dwt). В прошлом или позапрошлом году мне на глаза попалась статья, в которой обсуждались проблемы трансляторов из COBOL-а в Java.<br /><br />Как уже верно заметил Unknown, для хорошего результата требуется совпадение семантики языков. Но есть и вторая очевидная проблема: потеря информации, которая содержалась в старом коде в виде комментариев. А эту информацию сложно сохранить, если не получается транслировать код из одного языка в другой 1-в-1. Например, если попытаться C-шный код перетранслировать в Pascal (поедут объявление и инициализация переменных, будут переписаны циклы, будут изменены операции над указателями и т.д.).<br /><br />Думаю, что есть и еще одна проблема, которую можно проиллюстрировать на приведенном выше примере с Java и Kotlin: со временем новый код на Kotlin так же будет превращаться в legacy. И у разработчиков проекта будет старая кодовая база на двух языках. Если нужно как-то доработать Java-часть (пофиксить ошибку или чуть-чуть расширить функциональность), то выгоднее это делать на Java, чем переписывать старый кусок на Kotlin полностью. Поэтому не смотря на написание нового кода на Kotlin старый код на Java продолжит жить и эволюционировать. А потом окажется, что вместо Kotlin-а можно применить еще что-то. И опа! У нас уже и Java, и Kotlin, и еще что-то модное и молодежное.<br /><br />Правда не знаю какой процент настолько больших и долгоживущих проектов, в которых успеет накопиться изрядно legacy-кода. Такое ощущение, что чуть ли не 80% разработки сейчас -- это что-то краткосрочное для Web-а на PHP, RoR или Node.js. Ну или на Go. Без претензий на то, что написанный код будет работать и развиваться в перспективе 5-10 лет хотя бы.eao197https://www.blogger.com/profile/17283739752119445290noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-72195802750657644822019-02-26T02:42:45.589+03:002019-02-26T02:42:45.589+03:00> Пока никто не думает в этом направлении, а зр...> Пока никто не думает в этом направлении, а зря.<br /><br />Не только думают, но уже есть результаты. Kotlin очень даже позволяет писать новый код на Kotlin и использовать старый на Java (IMHO, они довольно шустро могут вытеснить Java на задворки, уже сейчас началась волна обучения студентов Kotlin'у и использования его крупными компаниями в разработке, так что через несколько лет процесс может принять лавинообразный вид, так что на Java останется только те части кода, которые еще не начали модифицировать/переписывать). Однако такой подход работает только при условии, что семантика нового языка не сильно отличается от предыдущего, т.е. Kotlin не получится совместить с С++ (даже в варианте Native) или каким-нибудь Haskell.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-37864550464282193572019-02-26T02:16:16.389+03:002019-02-26T02:16:16.389+03:00Да, интересная тема. В целом, победит тот подход, ...Да, интересная тема. В целом, победит тот подход, который позволит преобразовать старые программы в новые без потери смысла/производительности и проч. Пока никто не думает в этом направлении, а зря.Grigory Demchenkohttps://www.blogger.com/profile/00767146690798788624noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-60245148566749791492019-02-25T17:28:25.899+03:002019-02-25T17:28:25.899+03:00У меня в памяти почему-то осталось то, что 95-я, 9...У меня в памяти почему-то осталось то, что 95-я, 98-я и WinMe были версиями Windows, внутри которых еще работал 16-битовый код, доставшийся от Win 3.*. Хотя сами 95/98/Me поддерживали Win32 API и 32-х битовые приложения были там родными. Только начиная с Win2000 версии Windows стали базироваться только на ядре NT.eao197https://www.blogger.com/profile/17283739752119445290noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-52659979693910291962019-02-25T16:54:32.066+03:002019-02-25T16:54:32.066+03:00Про Windows 98 странная оговорка, разве она не был...Про Windows 98 странная оговорка, разве она не была 32-битной? Dmitry Popovhttps://www.blogger.com/profile/07584454083425330761noreply@blogger.com