Не уверен, что я удачно донёс свою мысль. Риски у вас есть всегда и везде, и «проприетарность» должна рассматриваться абсолютно в ряду прочих и занимать соответствующее место. Она абсолютно ничем не заслуживает уподобления красному свету на перекрёстке.
Скажем, я всю жизнь пользуюсь проприетарным MS Office, и пока всё более-менее хорошо, даже обратная совместимость соблюдается. Авторы не потеряли интереса, как видите. И есть достаточное количество open source продуктов, от которых пришлось таки отказаться: Bazaar и Java PathFinder, например. Не помогла их опенсорсность ни разу.
Когда я вижу, что продукт закрытый, то ставлю галочку: вот, тут есть риск. Но в итоговой таблице галочек много, и эта галочка будет лишь одной из общего списка.
Ну и что? А завтра меня может переехать автобус. Это всё оценки рисков, не более того.
Может. Но, в целом, вы, в свою очередь, можете постараться не спонсировать столь паску…
Мне кажется, вы избыточно идеологизируете проблему. Вокруг меня масса вещей, которыми я пользуюсь. Часть из них заведомо под моим контролем (мебель, положим), часть вообще никак не зависит (автобусные маршруты), часть идёт с vendor lock (конкретные мешки для пылесоса).
Софт в этой картине — всего лишь один мелкий элемент, а «проприетарность» — всего лишь один из рисков. Я вполне себе помню нужный мне open source софт который по сути сдох из-за недостатка интереса к себе. Что мне толку с того, что он open source? Я не могу его сам поддерживать (других дел хватает), сообщество не хочет. Стало быть, переезжаем на другой — возможно, тоже open, а может, и проприетарный, если риски от потери интереса фирмы мне кажутся менее вероятными, чем риски от потери интереса сообщества.
Почему? Всегда можно связаться с авторами и уточнить условия. Но в любом случае основной проблемы это не отменяет — нужный мне софт может быть closed source независимо от операционки, на которой он у меня крутится.
Линукс — это OSS, но далеко не все приложения OSS. А для работы нужен как раз софт. Ну и даже OSS софт далеко не всегда оперативно обновляется авторами, если в операционке что-то изменилось.
Ну спасибо на добром слове. С моей колокольни как раз вы упрощаете ситуацию, потому что автоматически считаете веб-приложения «переносимыми», а десктопные — непереносимыми, в то время как можно разработать программу под десктоп, которая будет работать из коробки под любой десктоп (напр., если она на Java написана), ну или будет существовать версия под все возможные десктопы, и обратно, можно разработать такой сайт, который будет работать исключительно под IE/Chrome/Safari/whatever, и мы с этим тоже сталкиваемся регулярно.
Ну так вы же имеете выше претензии к декстопу из-за того, что CAD-система неожиданно не работает под линуксом, например. Будьте последовательны, вините во всём кривые руки её разработчиков.
Ну так вы перепрыгиваете сразу к теме «интернационального программирования», хотя до неё нужно преодолеть безбрежное море темы «коммуникации с компьютером без строгого формального синтаксиса». Попробуйте хотя бы гипотетически вообразить себе, как может выглядеть такое общение. А точнее, не «общение», а инструкция для компьютера от человека. Так что тут не хватает не просто «конкретизации термина», а его детальной проработки.
Дисциплины за пределами computer science, если их интересует точность, пытались и пытаются как раз идти к формальности. Юриспруденция, математика — даже есть возможность писать «неформально», всё равно предпочтение отдаётся стандартному синтаксису и шаблонным оборотам, потому что цель состоит в снятии разночтений.
Думаете, они и вправду решили сделать язык, близкий к естественному? Есть этому какое-то подтверждение?
В исходной статье 1974 года сказано «there is also a large class of users who, while they are
not computer specialists, would be willing to learn to interact with a computer in a reasonably high-level, non-procedural query language. <...> It is for this class of users that SEQUEL is intended. For this reason, SEQUEL emphasizes simple data structures and operations.»
Собственно, эта ситуация противопоставляется естественному языку. В предыдущем абзаце пишут про «других пользователей»: «There are some users whose interaction with a computer is so infrequent or unstructured that the user is unwilling to learn a query language. For these users, natural language or menu selection (3,4) seem to be the most viable alternative».
Если человек умеет формализовывать алгоритмы, выучить основы Питона для него будет вопросом нескольких дней (никто же не ожидает знания всех тонкостей).
А программирование «на естественном языке» абсолютно всегда и везде вырождается в тот же Бейсик/Питон/whatever, только со словами вроде ЦИКЛ и КЦ вместо FOR… NEXT.
Иными словами, во фразе «пусть пишет алгоритм на естественном языке» заложена такая трясина, по сравнению с которой любые особенности языков программирования покажутся цветочками.
Программирование на естественном языке — это достаточно странная цель, которая опирается на предположение о том, что именно изучение языка программирования является каким-то существенным барьером для новичка. Но это примерно то же самое, что утверждать, что самое сложное в английском языке — это изучение алфавита. В действительности изучить синтаксис — это меньшая из проблем, и несмотря на наличие всякого рода CASE-средств, UML-компиляторов и прочих подобных инструментов, заменить программистов аналитиками не получается. Куда большая проблема состоит в приобретении навыков формализованного изложения. На естественном языке примерами такого изложения являются всякого рода договоры, законы и прочая бюрократия, которую тоже надо уметь изложить (и даже уметь прочесть, если на то пошло). Обычный нормальный человек, даже аналитик-специалист не имеет навыков детализированного, технически точного изложения алгоритма. А если имеет, то писать на чём-нибудь вроде Visual Basic для него не должно составить труда.
«В вебе всегда» — это про сайты типа «просматривать только на IE в разрешении таком-то» или «требует Java-плагина версии строго такой-то»? Накушались, спасибо.
Мне тут периодически приходилось заходить на сайт, который в упор не работал, если в браузере стоял не тот язык по дефолту (слетала локализация, т.к. сайт не был переведён на мой язык, а на дефолтный откатываться не умел).
Да я не думаю, что она качнулась. Ситуация своеобразная и… гмм… новая по-своему. Уверен, что дети (ну, не все, конечно) по-прежнему любознательны и заинтересованы в «хочу сделать» не меньше нас в детстве, но стандарты «интересного» у них завышены, а возможности отстают.
Ну вот любопытная штука, например. В настольных играх ничего нового не появилось вообще — доски, фишки, карточки, кости. Однако же если взять любую игру 30-летней давности, по современным понятиям это будет тоска смертная. Почему так? Играли же предки в «Монополию» и не ныли. Мы стали более пристрастны, и забавой типа «кинь кубик» нас уже не привлечь.
И вот когда такой ребёнок/студент загорается желанием «что-то сделать», то довольно сложно предложить ему нечто эдакое. Либо в этом «эдаком» будет изначально очень большая составляющая «чёрного ящика» типа микроконтроллера Arduino, принцип работы которого понять в деталях будет нереально.
Экскьюзе муа, это вы мне говорили, что «аккумулятор на месяц — проще простого». Или там дальше стояла скрытая звёздочка, а снизу сноска (*) с помощью заливки 2 кг метанола?
Не могу сказать, сколько они писали, но в любом случае 5 строк на Python и 5 строк на ассемблере — это разные вещи. Однако из личного опыта — «5 строк на ассемблере в день» — это абсолютно нереальная цифра, потому что 5 строк у вас банальное перекидывание аргументов из памяти в регистр, выполнение простой операции, и закидывание обратно займёт. (Это по сути атомарный кусок кода, который вряд ли содержит ошибки).
Неважно потому, что принципиально ничего не изменилось,
У нас разные представления о принципиальном. Вы тут выше пишете, что девушка с веретеном и девушка с ткацким станком — это «принципиально разные вещи», но ведь там тоже никакой разницы — что было плетение ниток, что осталось. Ну и тракторист тоже ничего нового не добавил по сравнению с лошадью. Так что давайте определяться, где граница принципиального.
Да, я читал как-то жалобу одного юзера на электросамокат. Дескать, разряжается гораздо быстрее, чем заявлено производителем. А на запросы производитель легко ответил: ну так чего вы хотите. Катаетесь по городу с остановками (тормоз отъедает батарею), температура у вас ниже 20 градусов, да ещё и весите вы больше 75 кг — чего ж удивительного? Вот сделайте всё как в лаборатории — и будет как заявлено.
Можно как угодно играть в фантазии, но понятно, что когда я сказал, что хочу иметь ноутбук с батареей на месяц, речь шла не о том, что будет ЦП на 100МГц с пассивным охлаждением и ч/б монитор 640x480 c солнечными батареями и аккумулятором в половину рюкзака.
Короче говоря, с позиции юзера не решается эта задача, а если кто захочет на слабо такую модель изготовить — то лишь в рамках такого соревнования она и будет существовать.
Ну это любимый аргумент «тебе это не надо». Мне надо, а если кому хочется сидеть на тонком клиенте — его дело. Лично я хочу хороший аккумулятор, которого бы хватило для полностью автономной работы на месяц при любых нагрузках.
В любом случае, кстати, что-то с расчётами у вас не так: одна только смена экрана с Full HD на 4K способна вдвое уполовинить батарею; да и просто работа с ноутом в режиме печати текста уводит заряд в ноль за несколько часов.
Ну вы озвучиваете стандартные фантазии совсем лохматых годов — «каждый» делать этого в принципе не может, или напомнить вам анекдот про «купи батон хлеба, если будут яйца — возьми десяток»?
Ну поскольку вы всех собеседников отправляете читать несуществующий на сегодняшний день текст, у меня к нему будет пара заблаговременных пожеланий.
Если программирование будет выглядеть как
Если задать все важные для решения задачи условия (свойства), то таким образом мы определяем
то абсолютно необходимо оценить трудозатраты на такую работу. Если они окажутся сравнимы с нынешними, то и прогресса нет.
Ну и кроме того, имейте в виду, что
Только есть проблема — то что получится (если вообще получится) будет ли корректным результатом?
данная «проблема» — в общем виде не особенно-то и проблема. Все наши беседы о будущем разработки ПО — это не более чем узкопрофессиональная дискуссия атоматизаторов о тонкостях процесса автоматизации. Они за пределами нашей среды вообще никого не волнуют.
В современном мире есть задачи, которые как-то решаются и которые не решаются вообще. Под «не решаются» я подразумеваю что-то достаточно глобальное типа невозможности на сегодняшний день создать аккумулятор для ноутбука, который на одной зарядке проработает месяц. Если же задача решается, то надо сначала удостовериться, что улучшение процесса вообще кого-либо интересует, то есть снижение издержек или повышение точности решения востребовано и достижимо. Если же мне как заказчику в принципе годится решение, которое работает в 99% случаев как надо и получается в результате недели работы специалиста за мелкий в масштабах фирмы прайс — то по определению улучшение процесса мне ничего не даёт.
Скажем, я всю жизнь пользуюсь проприетарным MS Office, и пока всё более-менее хорошо, даже обратная совместимость соблюдается. Авторы не потеряли интереса, как видите. И есть достаточное количество open source продуктов, от которых пришлось таки отказаться: Bazaar и Java PathFinder, например. Не помогла их опенсорсность ни разу.
Когда я вижу, что продукт закрытый, то ставлю галочку: вот, тут есть риск. Но в итоговой таблице галочек много, и эта галочка будет лишь одной из общего списка.
Мне кажется, вы избыточно идеологизируете проблему. Вокруг меня масса вещей, которыми я пользуюсь. Часть из них заведомо под моим контролем (мебель, положим), часть вообще никак не зависит (автобусные маршруты), часть идёт с vendor lock (конкретные мешки для пылесоса).
Софт в этой картине — всего лишь один мелкий элемент, а «проприетарность» — всего лишь один из рисков. Я вполне себе помню нужный мне open source софт который по сути сдох из-за недостатка интереса к себе. Что мне толку с того, что он open source? Я не могу его сам поддерживать (других дел хватает), сообщество не хочет. Стало быть, переезжаем на другой — возможно, тоже open, а может, и проприетарный, если риски от потери интереса фирмы мне кажутся менее вероятными, чем риски от потери интереса сообщества.
Почему? Всегда можно связаться с авторами и уточнить условия. Но в любом случае основной проблемы это не отменяет — нужный мне софт может быть closed source независимо от операционки, на которой он у меня крутится.
Ну спасибо на добром слове. С моей колокольни как раз вы упрощаете ситуацию, потому что автоматически считаете веб-приложения «переносимыми», а десктопные — непереносимыми, в то время как можно разработать программу под десктоп, которая будет работать из коробки под любой десктоп (напр., если она на Java написана), ну или будет существовать версия под все возможные десктопы, и обратно, можно разработать такой сайт, который будет работать исключительно под IE/Chrome/Safari/whatever, и мы с этим тоже сталкиваемся регулярно.
Дисциплины за пределами computer science, если их интересует точность, пытались и пытаются как раз идти к формальности. Юриспруденция, математика — даже есть возможность писать «неформально», всё равно предпочтение отдаётся стандартному синтаксису и шаблонным оборотам, потому что цель состоит в снятии разночтений.
В исходной статье 1974 года сказано «there is also a large class of users who, while they are
not computer specialists, would be willing to learn to interact with a computer in a reasonably high-level, non-procedural query language. <...> It is for this class of users that SEQUEL is intended. For this reason, SEQUEL emphasizes simple data structures and operations.»
Собственно, эта ситуация противопоставляется естественному языку. В предыдущем абзаце пишут про «других пользователей»: «There are some users whose interaction with a computer is so infrequent or unstructured that the user is unwilling to learn a query language. For these users, natural language or menu selection (3,4) seem to be the most viable alternative».
А для других, стало быть, SQL.
А программирование «на естественном языке» абсолютно всегда и везде вырождается в тот же Бейсик/Питон/whatever, только со словами вроде ЦИКЛ и КЦ вместо FOR… NEXT.
Иными словами, во фразе «пусть пишет алгоритм на естественном языке» заложена такая трясина, по сравнению с которой любые особенности языков программирования покажутся цветочками.
Мне тут периодически приходилось заходить на сайт, который в упор не работал, если в браузере стоял не тот язык по дефолту (слетала локализация, т.к. сайт не был переведён на мой язык, а на дефолтный откатываться не умел).
Ну вот любопытная штука, например. В настольных играх ничего нового не появилось вообще — доски, фишки, карточки, кости. Однако же если взять любую игру 30-летней давности, по современным понятиям это будет тоска смертная. Почему так? Играли же предки в «Монополию» и не ныли. Мы стали более пристрастны, и забавой типа «кинь кубик» нас уже не привлечь.
И вот когда такой ребёнок/студент загорается желанием «что-то сделать», то довольно сложно предложить ему нечто эдакое. Либо в этом «эдаком» будет изначально очень большая составляющая «чёрного ящика» типа микроконтроллера Arduino, принцип работы которого понять в деталях будет нереально.
У нас разные представления о принципиальном. Вы тут выше пишете, что девушка с веретеном и девушка с ткацким станком — это «принципиально разные вещи», но ведь там тоже никакой разницы — что было плетение ниток, что осталось. Ну и тракторист тоже ничего нового не добавил по сравнению с лошадью. Так что давайте определяться, где граница принципиального.
Можно как угодно играть в фантазии, но понятно, что когда я сказал, что хочу иметь ноутбук с батареей на месяц, речь шла не о том, что будет ЦП на 100МГц с пассивным охлаждением и ч/б монитор 640x480 c солнечными батареями и аккумулятором в половину рюкзака.
Короче говоря, с позиции юзера не решается эта задача, а если кто захочет на слабо такую модель изготовить — то лишь в рамках такого соревнования она и будет существовать.
В любом случае, кстати, что-то с расчётами у вас не так: одна только смена экрана с Full HD на 4K способна вдвое уполовинить батарею; да и просто работа с ноутом в режиме печати текста уводит заряд в ноль за несколько часов.
Если программирование будет выглядеть как
то абсолютно необходимо оценить трудозатраты на такую работу. Если они окажутся сравнимы с нынешними, то и прогресса нет.
Ну и кроме того, имейте в виду, что
данная «проблема» — в общем виде не особенно-то и проблема. Все наши беседы о будущем разработки ПО — это не более чем узкопрофессиональная дискуссия атоматизаторов о тонкостях процесса автоматизации. Они за пределами нашей среды вообще никого не волнуют.
В современном мире есть задачи, которые как-то решаются и которые не решаются вообще. Под «не решаются» я подразумеваю что-то достаточно глобальное типа невозможности на сегодняшний день создать аккумулятор для ноутбука, который на одной зарядке проработает месяц. Если же задача решается, то надо сначала удостовериться, что улучшение процесса вообще кого-либо интересует, то есть снижение издержек или повышение точности решения востребовано и достижимо. Если же мне как заказчику в принципе годится решение, которое работает в 99% случаев как надо и получается в результате недели работы специалиста за мелкий в масштабах фирмы прайс — то по определению улучшение процесса мне ничего не даёт.