Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Вам стоит все-таки набраться опыта в программировании и посмотреть на то, как разрабатываются такие проекты как Python. Посмотреть на историю этого проекта и принятые при его разработке решения. Узнать, как и почему до сих пор не произошел полный переход на Python 3.Обязательно. В свободное время, в виде хобби этим и занимаюсь. Правда мало свободного времени, поэтому продвигается у меня всё очень медленно.
Сложно все описать, но если Гвидо в здравом уме, то это 100% шутка.Вот видите, и у вас появилось «если».
Тогда почему мы это не делаем?
Не надо думать, что все плохо. Может быть вам вообще нужен Matlab? Зачем критиковать C#, если он вам просто не подходит?Я хочу поделать для себя игрушки, а Матлаба, Октава и Луа для Unity 3D нет.
Я просто на самом деле считаю, что не надо нам мучить детей в школах с индексацией с нуля, а сделать высокоуровневые языки программирования, которые были бы удобны без переучивания.
Почему до сих пор в высокоуровневых языках мы используем то, что уже давно не обязательно использовать
А каков процент задач в которых приходится спускаться на низкий уровень?
Думаю, большинство из этих детей, процентов 80-90 будут писать на высокоуровневых языках и им никогда не понадобится индексация с 0.
Тем же кому придётся работать с невысокоуровневыми языками программирования, придётся освоить индексацию с нуля, бесспорно.
Прекрасно, и как потом эти «дети» будут программировать на языках, в которых индексация с нуля?
Вы вроде психолог, но почему-то не можете (или не хотите) понять простую вещь, свойственную человеку: то, что для вас «интуитивно понятно», для других людей не будет являться таковым. И наоборот.Ну, отлично написано, никаких претензий. Вот только если мы на входе имеем 100% популяцию тех для кого это непривычно и нам их всех надо переучить, возникает вопрос, зачем это делать? Не проще ли что-то поменять, чтобы не пришлось этого делать? Мы не имеем такой возможности?
Вот только если мы на входе имеем 100% популяцию тех для кого это непривычно и нам их всех надо переучить
Не проще ли что-то поменять, чтобы не пришлось этого делать?
Мне больше нравится индексация с нуля (привычно).Привычно — ключевое слово.
Может, я и аномалия, но по моему мнению изучение этого полезно.Тем, кто будет работать с низкоуровневыми языками программирования это несомненно будет полезно, вот только каков процент программ при написании которых нужно спускаться на этот самый низкий уровень?
Если мы пишем более человеческие языки называемые высокоуровневыми, какой смысл в переучивании всего потока школьников (студентов), если можно это в высокоуровневом языке программирования спокойно изменить?
Высокоуровневые языки, это языки на которых просто и удобно программировать.Нет строгого деления на «высокоуровневые» и «не высокоуровневые» языки. Современные языки распределены более менее равномерной градацией услово от «самого низкого» до «самого высокого» уровня. И C# в данном случае находится где-то посередине. И ему не нужно быть выше или ниже, он выполняет свою роль.
Программируя на одном из них я столкнулся с вещами, которые неудобны и не просты.Обычная ситуация – вы выбрали неправильный инструмент для решения своей задачи. Я думаю, что Python вам подошел бы гораздо лучше.
Мы не имеем возможности сделать это проще и удобней? Да похоже имеем, насколько я понимаю. Тогда почему мы это не делаем?Смотрите какая тут ситуация. Касательно чисел все уже сделали – Python и Ruby являются удачными тому подтвреждениями. Только вот не для всех такое решение оказалось приемлемым, так что языки, в которых нужно думать о размере числа еще надолго останутся с нами.
.nth(number), или ввести по два разных типа коллекций, или добавить опцию компиляции, или придумать еще какое-нибудь удачное или не очень решение. Только вот опытные программисты смотрят на это с недоумением, просто потому что для них это выглядит неестественно. Ведь именно индексация с нуля является базовой по объективным причинам, и любая другая индексация будет лишь надстройкой над обычной. А значит, добавление еще одного способа индексации на уровне языка будет создавать избыточность, а программисты очень не любят избыточные API, тем более если речь идет о стандартной библиотеке языка.Обычная ситуация – вы выбрали неправильный инструмент для решения своей задачи. Я думаю, что Python вам подошел бы гораздо лучше.Я думаю, на Питоне нельзя писать под Unity 3D, а значит я выбрал лучший вариант из возможных, но речь в топике шла не обо мне. Я лишь описал то, что увидел в современных языках программирования то, чего никак не ожидал увидеть. Думал прогресс шагнул намного дальше.
Кстати, с общей идеей статьи я согласен, «высокоуровневости» нужно больше.Да, собственно. Именно в этом и был смысл статьи, а не для того, чтобы разводить холивары.
Существют фундаментальные аспекты из-за которых концепции, которые вызывают у вас удивление, не меняются и менятся не будут.Очень сомневаюсь.
Ваше ощущение «а воз и ныне там» вызвано исключительно тем, что вы как «гуманитарий» совершенно не туда смотрите.
А все современные языки это топтание вокруг языка Си с его базовыми концепциями.Вы бесконечно наивны и милы в этом утверждении. Дело не в С, и это не вопрос вкуса. Нравится вам это или нет, хотите вы думать об этом или не хотите, но типы данных действительно существуют, указатели самые настоящие, память выделяется и освобождается, и увы она не бесконечна. Так устроена архитектура компьютера и языки программирования здесь ни при чем.
Для программирования типы данных вообще не нужны.
Я вообще новичков не минусую без веской причины… Но критика индексации с нуля — это та самая веская причина.Я уже давно понял, что в среде программистов индексация с 0 это священная корова. Этой темы нельзя касаться никогда просто потому, что нельзя никогда. Не думаю, что это разумный подход.
В остальном — откройте для себя скриптовые ЯП.Спасибо за наводку!
Lua — индексация откуда сами захотите.
Числовой тип один — number.
Я уже давно понял, что в среде программистов индексация с 0 это священная корова. Этой темы нельзя касаться никогда просто потому, что нельзя никогда.
Верно. Индексация с нуля один из тех нюансов, который помогает решать задачи проще.Пока что мой опыт говорит как раз совсем о противоположном. Объясните чего именно я не вижу и не понимаю?
Касаться этой темы можно, но для начала не плохо было бы в ней разобраться.
for (int item = 0; item<count; item++)
drawItem(item, 0,item*ITEM_HEIGHT,ITEM_WIDTH,ITEM_HEIGHT); //x,y,width,height
for (int item = 1; item<=count; item++)
drawItem(item, 0,item*ITEM_HEIGHT-ITEM_HEIGHT,ITEM_WIDTH,ITEM_HEIGHT); //x,y,width,height
Пока ощущение, что опыта у вас просто нет.Опыта у меня действительно не много.
Научиться считать можно хоть с -2, но что это доказывает?Это доказывает то, что считать можно в общем-то начиная с любого числа. И позволяет нам задатся законным вопросом – а какой счет будет наиболее естественным и удобным.
И́ндекс (лат. index — список, реестр, указатель, а также указательный палец) — число, буквы или другая комбинация символов, указывающая место элемента в совокупности
for(int i = 0; i < buttons.Length; i++)
{
buttons[i].X = i * SOME_CONST_BUTTON_WIDTH;
}
for(int i = 0; i < buttons.Length; i++)
{
buttons[i].X = SCREEN_WIDTH - i * SOME_CONST_BUTTON_WIDTH - 1;
}
drawLine(0, 0, ITEM_WIDTH-1, 0); // top line
drawLine(0, 0, 0, ITEM_HEIGHT-1); // left line
drawLine(ITEM_WIDTH-1, 0, ITEM_WIDTH-1, ITEM_HEIGHT-1); // right line
drawLine(0, ITEM_HEIGHT-1, ITEM_WIDTH - 1, ITEM_HEIGHT-1); // bottom line
drawLine(1, 1, ITEM_WIDTH, 1); // top line
drawLine(1, 1, 1, ITEM_HEIGHT); // left line
drawLine(ITEM_WIDTH, 1, ITEM_WIDTH, ITEM_HEIGHT); // right line
drawLine(1, ITEM_HEIGHT, ITEM_WIDTH, ITEM_HEIGHT); // bottom line
Миллионых разных формул, которые становятся проще при индексации от нуля.
Let n be the number of elements in the heap and i be an arbitrary valid index of the array storing the heap. If the tree root is at index 0, with valid indices 0 through n − 1, then each element a at index i has
children at indices 2i + 1 and 2i + 2
its parent floor((i − 1) ∕ 2).
Alternatively, if the tree root is at index 1, with valid indices 1 through n, then each element a at index i has
children at indices 2i and 2i +1
its parent at index floor(i ∕ 2).
Так же стоит отметить, что программист не обязательно математик
Хотя я был бы не против, если бы вы привели мне вашу математику, в которой индексация с нуля.
Я правильно понял,
Вариант а и б лучше, потому что разность границ даст длину
Вариант б лучше ибо в а нам надо будет прибавлять единицу к концу
По мне так самым красивым выглядит вариант «c» так как мы сразу видим какой элемент будет первым
оптимальность вычислений, которая в ЯВУ как правило скрывается «под капотом»?
Это же исключительно субъективное мнение
не волнует оптимальность вычислений
А «мне неудобно» — это не субъективное мнение?
Этого там вообще нет.
when starting with subscript 1, the subscript range 1 ≤ i < N+1; starting with 0, however, gives the nicer range 0 ≤ i < N
Как в варианте выглядит пустая последовательность?
Еще и потому, что для прилегающих интервалов «внутренние» границы будут совпадать
Я такого не говорил, я лишь сказал, что её можно спрятать в угоду удобности во внутрь языка(в компилятор, например).
но объективно, что не знакомым с программированием людям понятней одно, чем другое
Любая последовательность, где конец раньше начала?
Позвольте задать встречный вопрос, вам часто нужна пустая последовательность?
«С первого по пятый налево с пятого по десятый направо»? Так куда же пятому идти? Чаще на самом деле говорят «с шестого по десятый», что и логично.
зачем вам массив?
На основании чего вы делаете такой вывод?
2 ≤ i ≤ 1? Это нелогичная запись.
Она регулярно встречается в алгоритмах как базовый случай.
«Работаем с часу до трех, с трех до пяти отдыхаем» — что делаем в три часа?
Аналогии плохи тем, что на любую аналогию можно подобрать контраналогию.
Ну для того, для чего и раньше, хранить набор однообразных объектов, с которыми необходимо производить однообразные операции.
На основании экстраполяции выборки моих бывших одноклассников и одногрупников, которые учились программированию на количество населения.
В питоне, например, почти эта запись вполне логична и мне это нравится в нём.
Правда там она выглядит a[2:1] и выводит элементы со второго по первый не включительно
Вот это, как мне кажется, не очень логично.
0*x — это 0, вам не кажется нелогичным?Проводить операции на пустом множестве странно.
Но час делим, а люди нет.
Потому в вашей аналогии считается момент наступления трёх часов, т.е. до 2:59:59 включительно можно сказать.
Есть последовательности, есть списки
Картинку про экстраполяцию видели?
Над пустым множеством определены все те же операции
Не во всех языках
И да, возможно у меня недостаточная квалификация, в чём отличия в индексации между массивами, последовательностями и списками?
Просто я не считаю, что сложившееся годами — единственно правильное, а не банальная ошибка с последующей поддержкой легаси стиля.
Дийкстра пытается логически рассуждать, какая из них удобнее.
о некоем мифическом высокоуровневом языке, подходящем для обучения школьников, чтобы у них не болело место, отвечающее за индексацию с нуля
У последовательностей и (функциональных) списков нет индексации. Просто нет. Ее можно сделать как внешнюю операцию со стоимостью O(n), но это ровно тот случай, когда как хочешь, так и делаешь.
Вопрос только в том, что «сложилось годами» — программистская «индексация с 0» или «социальная индексация с 1»? По большому счету, и то, и другое — всего лишь устоявшаяся практика.
Он рассуждал с машинной, низкоуровневой и, отчасти, субъективной точки зрения
Я рассуждал о этом мифическом языке как о языке с самым низким порогом вхождения, высоким потенциалом и широкой применимостью, а вы все мои мечты разрушили.
Если в неком мифическом языке сделать такие хранилища это будет идеальный вариант, я за эту идею. Это уже где-то реализовано?
Вариант а и б лучше, потому что разность границ даст длину
Еще и потому, что для прилегающих интервалов «внутренние» границы будут совпадать.
Я всё ещё не считаю, что это что-то больше, чем субъективность для технических специалистов
Дальнейшее суждение строиться именно от выбора этого подмножества, в свою очередь я привёл вариант, который, как мне кажется, будет более удобен для неинженеров (назовём это так), а возможно и для меня, если к нему немного привыкнуть (и разобраться с выборкой пустого подмножества).
Для меня, кстати, осталось интересным, почему все так привязались к нумерации и почти никто не написал про единый цифровой тип?
Для меня, кстати, осталось интересным, почему все так привязались к нумерации и почти никто не написал про единый цифровой тип? Это же тоже интересная идея имеющая свои плюсы, минусы и нюансы, которые не сразу видны.Потому, что индексы, это священная корова которую нельзя трогать.
Любая последовательность, где конец раньше начала?
Int.MinValue.В свою очередь любые числовые последовательности в математике индексируются с единицы, если я не ошибаюсь.
В Java тоже есть число неограниченной точности — BigDecimal.
я подумал, а почкму эта программа до сих пор работает в уме программиста, а не возложена на язык программирования?
Int32[] arrOne = new Int32 [15] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
Int32[] arrTwo = new Int32 [16] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
// Теперь сложим эти массивы в один
// Присмотритесь, ключевой момент для вас, с вашей идеей индексации массивов с 1
Int32[] resultArr = new Int32[arrOne.Length + arrTwo.Length];
// resultArr.Length == 31
for(Int32 i = 0; i < arrOne.Length; ++i) resultArr[i] = arrOne[i];
for(Int32 i = arrOne.Length; i < arrTwo.Length; ++i) resultArr[i] = arrTwo[i];
//А теперь представьте, что индексация в Шарпе идет с единицы...
for(Int32 i = 0; i < arrTwo.Length; ++i) resultArr[i+arrOne.Length] = arrTwo[i];Надеюсь теперь видно, что индексация с нуля — это не просто так?
Неужели вы думали что вы умнее создателей C, C++, Java, C#?
ResultArr = ArrOne ++ ArrTwo.
Это Эрланг, а индексация в нем с единицы.
nth, которая возвращает n-ный элемент списка. А вот индексы массивов в нем… с нуля:Array indices start at 0.
nth начинается с нуля, одномерные массивы — тоже с нуля, но при этом двух- и трехмерные можно создавать с любым стартовым элементом. Talk about weird.) for(Int32 i = 1; i <= arrOne.Length; ++i) resultArr[i] = arrOne[i];
for(Int32 i = 1; i <= arrTwo.Length; ++i) resultArr[i] = arrTwo[i+arrOne.Length];
int[] SubArray(int[] array,int start,int length){
int[] result=new int[length];
for(int a=1;a<=length;a++) result[a]=array[a+start-1]; // <--- лишнее смещение
return result;
}
2. Откройте для себя языки с динамической типизацией и весь адок неотслеживаемых статически(без запуска кода) ошибок которые они в себе несут. Да, в отдельных случаях удобнее динамическая типизация. но в большинстве — она геморрой.Про динамическую типизацию я в курсе. Речь шла о статической типизации и единого числового типа данных в таком языке.
3. Интересная идея про SmallTalk. Но простой пример: 1 / 7 / 3 + 1 / 11 / 5. Сколько операций будет произведено при сложении традиционным способом с плавающей точкой, а сколько при делении на числители и знаменатели?А никто не говорит, что такие языки должны быть супер быстрыми. Пусть будет медленнее но удобнее. В конце концов мы имеем C# и Java которые медленнее C++ и ассемблера, но это компенсируется другим. Удобством.
Пусть будет медленнее но удобнее.
А никто не говорит, что такие языки должны быть супер быстрыми. Пусть будет медленнее но удобнее. В конце концов мы имеем C# и Java которые медленнее C++ и ассемблера, но это компенсируется другим. Удобством.
Количество информации в троичном бите нельзя выразить никаким целым числом двоичных битов.Зато отлично выражается дробным количеством бит. Если мы говорим об измерении количества информации, то нам понадобится ≈1.585 бита. В этом нет никакой проблемы.
Так что говорить, что двоичный бит «атомарный» неправильно — они с двоичным битом друг к другу не сводятся.А они и не должны сводится друг к другу. Под атомарным я имею ввиду наименьшее значение, которое можно взять за основу, то есть принять за «единицу». Опять же, в квантовой механике есть дробные заряды, а в математике есть пространства не целой размерности, и никто пока не умер.
Количество информации в объекте, который принимает значение 0 с вероятностью 99%, а 1 с вероятностью 1%, намного меньше 1 бита. Использовать его непосредственно в компьютерах не очень удобно, поскольку нельзя предсказать, сколько таких объектов понадобится для хранения/передачи нужного объёма информации, но в каналах связи они вполне могут присутствовать.Это и есть кубит, разве нет?
Это и есть кубит, разве нет?
double GetElement(int a,int b){ return Array[a*Dim1+b]; }double GetElement(int a,int b){ return Array[(a-1)*Dim2+(b-1)+1]; }допустим, вы хотите реализовать двумерный массив на базе одномерного.
Кстати, во всех СУБД числа хранятся очень тупо — в виде текстового представления, и в виде исключения могут быть предусмотрен способ хранения в двоичном виде
скорость чтения из базы данных несоизмеримо меньше чем длительность операций над этими числами
< $andman > $months = array(«Нулябрь», «Январь», «Февраль», «Март», «Апрель», «Май», «Июнь», «Июль», «Август», «Сентябрь», «Октябрь», «Ноябрь», «Декабрь»);
А у вас тоже есть нулевой месяц или вы тупо вычитаете единичку?
Если язык программирования высокоуровневый, то не лучше ли иметь чуть меньшую производительность языка, но несравненно большее удобство в работе с ним?
а, так уж совпало, что обычно вычисления с произвольной точностью нужны в тех же задачах, где нужна высокая производительность
Необходимость в больших целых и дробных возникает разве что в математических, криптографических и других специфичных задачах.
Smalltalk эту проблему решили очень красиво. В результате этого деления мы получим число класса Fraction. Оно содержит в себе числитель (1) и знаменатель (3). То есть, как такового деления не будет, а будет дробь. Ничего не теряем.Автор, даёшь извлечение корня и возведение в степень без потери точности!
Но за критическое осмысление без оглядки на «это ж и так всем очевидно» — респект.Всегда уважал Джордано Бруно. :)
Смотрите. Вот дети приходят в школу. И с удивлением обнаруживают, что есть непроизносимые согласные, безударные гласные, «жи-ши с „и”» — и так далее. Так вот, ваше предложение относительно индексов, и то упорство, с которым вы не желаете просто почитать сотни комментариев и признать свою неправоту, пахнут такой же «детской» наивностью, как предложение писать всё так, как произносится. «Давайте введём интуитивно понятную систему правописания, зачем детям запоминать столько неочевидностей, 21-й век на дворе давно». Чувствуете?Именно так я и считаю. Объясните мне в чём тайный смысл писать «что», когда слово произносится ка «што»?
По поводу очевидности — не находите ли вы, что иногда очевидность в такой сложной теме, как программирование, является скорее недостатком, чем преимуществом?Не нахожу.
По поводу высокоуровневости — не знаю, как для вас, но для меня (и для коллег, которые сидят рядом и тоже читают эту тему) высокоуровневость, прежде всего, заключается в синтаксисе. Для того, чтобы сказать, что язык A гибче и высокоуровневее языка B, нужно, чтобы в A были более гибкие конструкции, встроенные структуры данных. Но уж никак не такие мелочи, как индекс.Для вас может это и мелочи, для детей — нет.
Вот честно, я не знаю уже, как ещё аргументировать свою позицию. Вы смотрите лишь на тех, кому неудобен ноль, но напрочь игнорируете мнение тех, кому неудобна единица и тех, кому это совершенно безразлично, и приходите к «фундаментальному» выводу о том, что «ноль неудобен для всех, но не все ещё это осознали».Вы очень правильный пример привели с русским языком. Вот объясните, зачем 100% населению вдалбливать, что «что» пишется через «ч», когда можно писать через «ш» и избавиться раз и навсегда от этой проблемы?
Вспоминаем Джордано Бруно с Галилео Галилеем и многих-многих других для примера.
Объясните мне в чём тайный смысл писать «что», когда слово произносится ка «што»?
Для вас может это и мелочи, для детей — нет.
Вот объясните, зачем 100% населению вдалбливать, что «что» пишется через «ч», когда можно писать через «ш» и избавиться раз и навсегда от этой проблемы?
Именно так я и считаю. Объясните мне в чём тайный смысл писать «что», когда слово произносится ка «што»?
А ведь можно придумать пример, когда даже контекст не позволит понять, какое слово из 2-х с одинаковым произношением имелось ввиду, только их разное написание позволит отличить.
Но за критическое осмысление без оглядки на «это ж и так всем очевидно» — респект.
В реальности у нас пока нет бесконечной мощности ресурсов.
Для меня было большим удивлением, что индексация массивов, списков, да и любых других коллекций начинается с 0, а не с 1. Зачем? Это же неудобно, подумал я. [...] Если язык программирования высокоуровневый, то не лучше ли иметь чуть меньшую производительность языка, но несравненно большее удобство в работе с ним?
(это такой более развернутый вариант вопроса «зачем вам вообще нужен массив?»)
Dictionary<int,string> Arr=new Dictionary<int,string>();
Arr[3]="Three+";
Arr[5]="Five";
Arr[8]=Arr[3]+Arr[5];
Arr[3]="Three";
foreach(var x in Arr) Console.WriteLine("Arr[{0}]={1}",x.Key,x.Value);
найдётся человек, который напишет этот GUI для тех кому он нужену вас получилось:
он найдется, и напишет GUI, он может спокойной не рассказывать об этом никому, а только втихомолочку соло им пользоватся.
Мир эгоистов — хорошо.Чего вам и желаю.
Вам несколько раз уже написали, почему индексация с нуля лучше и удобнее, чем индексация с еденицы. Я не к тому, что вам несколько раз сказали, а вы не заметили, а к тому, что написали несколько разных причин, по которым это так. Если бы речь была об языке для обучения — индексанция с еденицы имела бы смысл (кстати она есть например в паскале, созданном для этих целей).Ну, не знаю. А вот хабраюзер Ogre, к примеру (да и не только он один), говорит противоположные вещи. Почему я должен больше верить аргументации этих нескольких, а не нескольких других? Тем более что мой здравый смысл говорит противоположное тому, что говорят те, которых вы привели в пример.
Хорошо, я выполню вашу работу за вас.
Возьмите любой достаточно содержательный пост из этого обсуждения и попробуйте переписать его «как слышите». Не для меня — результат вообще можете никому не говорить. А просто для себя.Вы думаете, я не пошёл у вас на поводу просто потому, что мне лень или узколобый кретин? Тут уже говорили про фундаментальную ошибку атрибуции…
Кто бы говорил о статусе-кво и о здравом смысле…Вот это всё, что вы можете сказать? :) Аргумент из разряда: «Сам дурак»?
Соблюдение законов логики необходимо, чтобы найти истину. Но если спорящие стороны интересует не истина, а победа в споре, то противники прибегают к способам, запрещённым логикой. Наиболее распространёнными являются следующие:
1. «Доказательство (довод) к личности» — вместо опровержения тезиса или аргументов, дают отрицательную оценку его личности.
2. «Довод к публике» — вместо обоснования истинности или ложности тезиса стремятся повлиять на чувства людей, чтобы они поверили в его истинность или ложность без доказательства.
3. «Дамский аргумент» — сведение к абсурду выдвинутого положения.
4. «Готтентотская мораль» — двойственная оценка одного и того же утверждения с целью использовать ту из них, которая в данный момент наиболее выгодна для достижения победы в споре.
5. «Бездоказательная оценка утверждений противника» — типа «Ерунда», «Бред» и т.д.
6. «Карманные доводы» — подмена вопроса об истинности утверждения вопросом, о вреде или опасности его.
7. «После этого, значит по причине этого» — простую последовательность событий во времени понимают за их причинную связь.
8. «Поспешное обобщение» — рассмотрев несколько частных случаев, делают вывод обо всех предметах данного класса.
9. «Палочные аргументы» — угрозы в адрес противника и др.
Вы же постоянно просите ещё и ещё
Они продолжают отстаивать это и тогда, когда есть равные аргументы «за» и «против».
Они даже продолжают отстаивать это когда не осталось никаких аргументов «за» и статус-кво стал противоречить здравому смыслу.
Изменились парадигмы, а вы говорите, что «ничего не изменилось».Из топика:
Многое было привычно, если не по внешнему виду, то по концепции: переменные, циклы, операторы ветвления… А что-то было совсем новым: ООП с его классами (полями, методами, свойствами), наследованием и т. д.Как из этого следует, что я утверждаю, что ничего не изменилось, мне не понятно.
Конечно, многое порадовало. Классы теперь позволяют заниматься распределением обязанностей: Так, ты мне принеси «то»; Ты сделай «это»; Ты посчитай мне «это», результат сообщишь. Это очень напоминает наше взаимодействие с окружающей средой. Например, зашли в прачечную, отдали грязное постельное бельё, забрали чистое. Зашли в ателье, отдали ушить брюки, забрали готовый вариант. Зашли в закусочную, сделали заказ, получили завтрак. Очень удобно и наглядно.
Вы же цепляетесь за каждый аргумент, который находите вам по нраву, и не смотрите на остальные.


В третьих, нужно следить за переполнением типа
1. В математике удобнее считать 0 натуральным числом. По мне так правильнее учить людей математике и менять менталитетИли так! Важно привести всё «к единому знаменателю», а к какому это уже вопрос другой.
2. Авторы Erlang так и рассуждали. Но работа с числами неопределенной размерности требует выделение/освобождение памяти, что не слишком эффективно. Оптимизации такого рода будут важны еще долго. Даже в Haskell, где тип Int неограничен, часто испорльзуют специализированные целочисленные типы.А есть какие-то осязаемые данные насколько это сказывается на эффективности?
3. Свойства и цели использования целых и дробных чисел сильно различны. От объединения не будет ни какой пользы, а вреда будет достаточно много.Насчёт «не будет никакой пользы» я категорически не согласен. Или считать просто числами, или думать какой тип даных, целочисленный или с плавающей запятой использовать и потом приводить один к другому в случае необходимости.
— как расставлять фигурные скобки и пробелы?Точно! Как я мог забыть! )))))
Всё это фигня. Вот в php перед каждой переменной нужно ставить знак доллара $ обязательно.Это круто! А какое-то логическое обоснование этому есть? Или тоже: «Тут так заведено»?
Кто-то не удержался, минусонул. )))))
Ну как, полегчало тебе?
А вы решили выплеснуть эмоции, что трактуется как потеря контроля над собой.Правильно было бы вот так: «А вы, как мне показалось, решили выплеснуть эмоции, что, мной было истолковано, как потеря контроля над собой.»
Правильно было бы вот так: «А вы, как мне показалось, решили выплеснуть эмоции, что, мной было истолковано, как потеря контроля над собой.»
Но нет, вы решили сообщить мне, что мне всё это показалось и что мне надо бы следить за корректностью своих высказываний.Это я сказал не только для вас, но и для многих других, которые способны уловить суть вашей ошибки.
Особенно забавно это выглядит, если учесть, что дальше вы безапеляционно утверждаете, что я ошибся, безо всяких там мне показалось.Разница в этих двух случаях в том, что вы не можете заглянуть внутрь меня (или можете? поделитесь тогда как вы это делаете) и лишь делаете предположение о моих истинных мотивах. А я вполне могу заглянуть в себя и увидеть, что истинные мотивы другие.
Но может я и правда ошибся и процитированную мной реплику можно истолковать как-то по другому?Письменная речь, устная реплика, или даже мимика лица и жестикуляция конечностями это только внешнее выражение. Вопрос только чего?
Было бы крайне интересно послушать.Ничего секретного. Общаясь с людьми в комментариях к этой теме я увидел очень много интересных, здравомыслящих и просто приятных людей. С ходу всех не вспомню, но на вскидку (Ogra, divan0, asm0dey, Mrrl, leshabirukov, Ruckus, poxu) А так как возвращаться на хабр я больше не собираюсь, я решил напоследок коснуться некоторых вопросов из области психологии, которые могли бы им показаться интересными и пригодиться в будущем. Всё просто.
Таким товарищам как lair я уже давно не отвечаю, они мне просто не интересны, а не потому, что мне нечего ответить.
Внешними выражениями может с такой же лёгкостью управлять ум. Причём, в зависимости от ситуации делать/говорить то, что прямо противоположно эмоциям (которых может и вообще не быть в какой-то ситуации).
Пусть минусуют, как я уже сказал, местная валюта в виде кармы и рейтинга меня не интересует, возвращаться на хабр я не собираюсь.
Вероятно, им будет вдвойне обидно. Так старались, минусили… )))
Ну это уже классическое — «на самом деле я просто притворялся». Часто встречается в молодёжных комедиях.Как вам будет угодно.
Создаётся впечатление, что вы уходите потому, что вас заминусовали.Именно так.
Но у вас в карме совсем небольшой минус, а минусы к коментариям это не так уж важно.Дело не в количестве минусов. Столкнувшись я программированием я удивился некоторым моментам и хотел обсудить почему это так. Я никак не ожидал, что меня заминусуют. Я конечно понимал, что это может быть больной темой, но минусовать только потому что человек посмел спросить, это мне кажется не серьёзно.
Вы присутствуете на хабре уже достаточно долго и, если карма и рейтинг и вправду вас не интересуют — зачем вам уходить?Для чтения хабра логин не нужен.
Останьтесь, напишите ещё статью, подискутируйте в комментариях. Неужели это совсем не интересно?Благодарю, но нет. Не интересно.
Если бы я был посетителям ресторана, а вы официантами или поварами
Да, вот так дебаты развернулись...
Почему наши высокоуровневые языки до сих пор не такие уж и высокоуровневые?