Почему-то мне кажется, что можно спроектировать язык программирования таким образом, чтобы избежать тех проблем о которых вы говорите. Почитайте ниже, где люди пишут о Эрланге, Фортране и Луа.
Да много чего можно сделать. Я не спорю. Просто статья-то не об этом. Не о том как выкрутиться в данной ситуации, а о том почему высокоуровневые языки программирования до сих пор используют такие вещи как индексацию с 0 и т.д?
Когда я понял, что просто пишу в уме программу вычитания единицы для пользования индексацией, я подумал, а почкму эта программа до сих пор работает в уме программиста, а не возложена на язык программирования?
Я объясню зачем выдумывать такие костыли. Мне постоянно приходится считать в уме эту поправку. А чего тогда и всё остальное не считать в уме? Выкинем языки программирования, будем делать всё сами.
Язык программирования и создан для того, чтобы делать за нас какую-то работу. Ну так пусть делает и эту, зачем мне постоянно над этим голову ломать?
Но я ещё раз хочу оговориться, речь не обо мне и о том как я пишу программы, я просто удивился, что спустя 20 лет в этом отношении всё остаётся по старому и мне не понятно почему это до сих пор так.
Я вообще-то гуманитарий. Случайно коснулся языков программирования в школе и сейчас. А это мой взгляд со стороны на данную область деятельности и мои удивления некоторым положениям вещей. Я просто был искренне удивлён, что это до сих пор так (это я про пункты в статье).
На данный момент я даже близко не обладаю той квалификацией, чтобы написать свой язык программирования. К сожалению. Моя профессиональная область деятельности — психология и я просто не могу уделить столько времени программированию. Хотя, было бы интересно. :)
2. Откройте для себя языки с динамической типизацией и весь адок неотслеживаемых статически(без запуска кода) ошибок которые они в себе несут. Да, в отдельных случаях удобнее динамическая типизация. но в большинстве — она геморрой.
Про динамическую типизацию я в курсе. Речь шла о статической типизации и единого числового типа данных в таком языке.
3. Интересная идея про SmallTalk. Но простой пример: 1 / 7 / 3 + 1 / 11 / 5. Сколько операций будет произведено при сложении традиционным способом с плавающей точкой, а сколько при делении на числители и знаменатели?
А никто не говорит, что такие языки должны быть супер быстрыми. Пусть будет медленнее но удобнее. В конце концов мы имеем C# и Java которые медленнее C++ и ассемблера, но это компенсируется другим. Удобством.
Речь-то не о C#. Речь о новых языках программирования в которых можно заранее предусмотреть то, что в нынешнем поколении языков может вызывать трудности.
Спасибо за наводку, но на самом деле, это не решает проблемы индексации с 0 в других коллекциях.
Если говорить о себе, то для себя я нашёл приемлемое решение этой проблемы — статический класс «a» с методом «s» который возвращает значение уменьшенное на 1. В итоге с любыми коллекциями я могу обращаться используя индексацию с 1. Просто для себя принял, что индекс указывается не просто числом, а через [a.s(i)]. Но я говорил вообще о положении вещей в современных языках программирования, а не о собственных проблемах при взаимодействии с ними.
Я обратил внимание. Но, думаю, если проектировать язык программирования с нуля, то такие вещи можно предусмотреть заранее.
Меня эта тема очень волнует. Я хорошенько буду думать, не сомневайтесь. :)
))) Ну, тут наши определения «мудрости решения», очевидно, не совпадают, но каждый имеет право на своё видение ситуации. Почему-то мне кажется, что со временем, всё равно придут именно к большей высокоуровневости в языках программирования. В том числе и к тем вещам о которых я писал в статье. Однако, история нас рассудит. Поговорим об этом снова лет через 40-50? )))
Кстати, с общей идеей статьи я согласен, «высокоуровневости» нужно больше.
Да, собственно. Именно в этом и был смысл статьи, а не для того, чтобы разводить холивары.
Это всего лишь мой взгляд со стороны. Пришёл через 20 лет и удивился, а зачем до сих пор лопатами копают, если повсюду тракторы ездят?
Естественно, никого не хотел обидеть, но, похоже, тема такая, что даже если 100 раз скажешь, что никого не хотел обидеть, всё равно обидятся.
Все ваши доводы мне понятны. Но есть неопытные программисты, такие как я, например. Им не нужно ничего переносить, им не нужно ломать традиции, ибо их традиция это всё считать с 1.
В общем, насколько я вижу, даже если у создателей языков программирования и появляются такие мысли, то продолжения они не имею из за боязни того, что их предложение будет принято, мягко говоря, не с распростёртыми объятьями.
Помню, как создатель языка Питон, заикнулся про индексацию с 1. Потом пришлось быстро это всё в шутку переводить.
Верно. Индексация с нуля один из тех нюансов, который помогает решать задачи проще.
Касаться этой темы можно, но для начала не плохо было бы в ней разобраться.
Пока что мой опыт говорит как раз совсем о противоположном. Объясните чего именно я не вижу и не понимаю?
Спасибо умный, добрый человек. :)
Когда я понял, что просто пишу в уме программу вычитания единицы для пользования индексацией, я подумал, а почкму эта программа до сих пор работает в уме программиста, а не возложена на язык программирования?
Язык программирования и создан для того, чтобы делать за нас какую-то работу. Ну так пусть делает и эту, зачем мне постоянно над этим голову ломать?
Но я ещё раз хочу оговориться, речь не обо мне и о том как я пишу программы, я просто удивился, что спустя 20 лет в этом отношении всё остаётся по старому и мне не понятно почему это до сих пор так.
А никто не говорит, что такие языки должны быть супер быстрыми. Пусть будет медленнее но удобнее. В конце концов мы имеем C# и Java которые медленнее C++ и ассемблера, но это компенсируется другим. Удобством.
Если говорить о себе, то для себя я нашёл приемлемое решение этой проблемы — статический класс «a» с методом «s» который возвращает значение уменьшенное на 1. В итоге с любыми коллекциями я могу обращаться используя индексацию с 1. Просто для себя принял, что индекс указывается не просто числом, а через [a.s(i)]. Но я говорил вообще о положении вещей в современных языках программирования, а не о собственных проблемах при взаимодействии с ними.
Меня эта тема очень волнует. Я хорошенько буду думать, не сомневайтесь. :)
Обязательно почитаю про MUMPS.
Это всего лишь мой взгляд со стороны. Пришёл через 20 лет и удивился, а зачем до сих пор лопатами копают, если повсюду тракторы ездят?
Естественно, никого не хотел обидеть, но, похоже, тема такая, что даже если 100 раз скажешь, что никого не хотел обидеть, всё равно обидятся.
Спасибо за примеры, буду думать.
В общем, насколько я вижу, даже если у создателей языков программирования и появляются такие мысли, то продолжения они не имею из за боязни того, что их предложение будет принято, мягко говоря, не с распростёртыми объятьями.
Помню, как создатель языка Питон, заикнулся про индексацию с 1. Потом пришлось быстро это всё в шутку переводить.