Pull to refresh
-3
0
Send message
Если 1000 — то на каком железе это могло бы работать без деградации производительности? Если 1000 — то на каком железе это могло бы работать без деградации производительности? На обычном — так точно нет.

Как это мило, когда кого-то обвиняют в неактуальности ретранслируя неактуальные мифы про 1000потоков из 90х.
держащие 10 тыс коннектов

10к держат хелворды на атоме.

Как им удается обслуживать до миллионов запросов в секунду

Поподробнее об этом.

Вы вообще различаете язык Java, JDK и JRE?

Вот объясните мне, эксперты, что с вами не так? Вы не умеете читать? Хотя что я могу ожидать от верующих — уж явно не объективности.

Специально для вас расшифрую.

Не способен. Причина проста — жава(язык) просто неспособна на подобные абстракции.

Расшифрую ещё более тщательно. Неважно какой там жит. Жит не выпилит ГЦ, жит не выпилит рантайм рефлексию, жит не наделит жаву нормальной типизацией, жит не сделает из дженериков что-то уровня крестовых шаблонов.
Именно он позволяет Java держать лидирующие позиции в тестах на производительность.

В мире влажных мечтаний адептов, возможно.

И повторюсь, это не что-то отдельное от Java — это часть стандартной JVM.

И что же из этого следует?

Так что вы своим комментарием подтвердили, что вы совершенно не компетентны для обсуждения того, что Java может, а что нет.

И что же конкретно я своим комментарием подтвердил и на основании чего.
Если есть что возразить — я слушаю. Для начала научитесь читать, ведь то, что вы процитировали относится к жаве, а не к житу.
Но на входе-выходе существуют эфирные монеты и много чего ещё.

Не существует.

У НАСА был спускаемый аппарат, который навернулся из-за нестыковок между метрической и имперской системой.

Это к теме отношения не имеет. Решение проблемы не в кастылянии, а в приведении всего к одному виду. И именно про это я и говорю.

Он как раз говорит о такой штуке, как единицы измерения, закодированные в виде типов.

Нет. Он уже уплыл с темы 10 раз и слушать, что говорят подобные персонажи — себе дороже. Сначала он говорил про зерокост, потом вдруг о зерокосте забыл и прочее и прочее.

Так же, я на этот так же отвечал, но он это проигнорировал. Эфирные монеты и прочее и прочее — это логика сверху языка. Т.е. как в жаве логика работы с рублями. Вы же не требуете от жавы готовой логики работы с рублями? На входе ведь рубли есть.

Плюс, он путает( как и большинство) язык и рантайм. Т.е. язык и набор библиотек, которые поставляются с языком. Я об этом так же говорил. Так же — он не понимает, что токены — это не сущности платформы, а сущности внешние. Я об этом так же сказал.

Никто не говорит о том, что не надо делать удобные обёртки/абстракции. Я говорил о другом, а именно о взаимоисключающих параграфах в предложении данного персонажа. Не надо мне приписывать что-то не моё.

Вы постоянно «тычете» оппонента в «плавучку», которой в его комментариях нет.

Если там нет слова «плавучка» — это не значит, что её там нет. Если вы не можете это вывести сами, то я вам показал цитату, в которой персонаж явно говорил о том, что логика с константным порядком ему непривычна.

Это сильно уменьшает вероятность ошибки, т.к. при попытке комбинирования в одной операции вы либо получите ошибку компиляции, либо корректное преобразование, закодированное один раз в логике типа.

Нельзя преобразовать сантиметры в метры не потеряв сантиметров. Всё это не работает. Вы предлагаете, опять же, экспортировать логику плавучки.

В логике же данной единственные операции, которые имеют смысл — это fromEther и прочее, что итак есть — выше уже показали. Это просто набор констант для смены порядка.

Эти константы позволяют вам приводить любые величины к общему виду — веям. И никаких проблем с преобразование дальше нет. Хотя что-то отличное от веев — вы сами туда тащите.

Ни в чём другом, кроме веев, считать по определению нельзя.

закодированное один раз в логике типа.

Нельзя считать в других типах. Нельзя в рамках точности милиметры считать в сантиметрах. Это всё плавучка — гоните её, либо сознайтесь в этом.

Всякий раз как вы говорите об эфирах — вы подразумеваете плавучку. Именно плавучка для вас меньшие единицы превращает в доли. Именно поэтому вы так просто рассуждаете о типах-эфирах и прочем( том же преобразовании).

За рамками её просто эфиров быт не может. К эфиру надо прикрутить ещё остаток. И уже у нас не эфир, а пара. И уже во много раз больше операций. И где обещанный зерокост?

Я даже не понимаю как это должно и может работать. WEI.amount(value).toEther() — что мы получаем? Только эфиры? А где веи? А если это веи, то чем они отличаются от веев? Это веи + эфиры? Как это.
Вы таки считаете, что лучше знаете, что у меня в голове происходит, чем я сам?

Глупая попытка. Никто и нигде верить вас не должен. Именно поэтому ваши «я считал так, а не иначе» — никого не волнуют. Вы пишите то, что пишите. И это интерпретирую так, как интерпретирую. Если вы не согласны — аргументируйте. «я так не думаю/ как вы знаете что я имел ввиду» — это глупо и это не работает.

Так бы в мире ничего не работало. Сказал одно, а потом «я не то имел ввиду».

А поводу плавучки — вот доказательства: habrahabr.ru/post/338084/#comment_10419964
Возможно, это ничего, если все привыкли считать, что всё и всегда выражено в веях.

Это именно то, о чём я говорил. Вы сознались в том, что не привыкли, а значит привыкли вы к чему? Правильно, к плавучке, где можно менять порядок как угодно и складывать величины разного порядка.

От того вам и не привычен константный порядок.

Но оно опять же явно не так.

Явно так.
В коде автора, например, есть tokensPerOneEther = 5000, а вовсе не цена одного токена в веях

Правильно, потому что автор так же пока не отвык от плавучки. И именно в веях она и должна быть выражена.
Очевидно, что не всегда удобно работать с веями, надо с разными единицами уметь.

Очевидно, что вам удобно игнорировать те обстоятельства, о которым вас сообщают. Токены — это левая логика. Её не существует в рамках платформы. Это не аналог веям.

На уровне платформы существуют только веи. И никаких других единиц попросту не существует.
Во всех языках мира придуманы разделители групп разрядов. Где-то апостроф сверху, где-то запятая снизу, где-то пробел. Это сделали не потому что кому-то нравится, а потому что это снижает вероятность ошибки. Подчерки лишь пример синтаксиса, он может быть любым, но вероятность ошибки должен снижать.

Очередная манипуляция. Вам говорили не о какой-то там фиче в каких-то там языках, а ваших заявлениях на тему «программисты ДОЛЖНЫ использовать это».

Вот именно про «должны» и отвечайте.

Выражения про плавучку абсолютно не понимаю. При чём здесь какая-то плавучка? Я говорю, численное представление суммы должно быть абстрагировано. Неважно, что там внутри. А вы мне про какую-то плавучку. Я и слов-то таких не употребляю никогда.


Притом, вся ваша «логика» и ответы — это «пальцем в небо» и не более того. Я уже говорил о том, что это уровень языка, а не уровень ваших абстракций. Вы же это, благополучно, проигнорировали.

Вы пытаетесь требовать с языка и платформы интерфейсов для логики внешнего мира. Это то же самое, что с жавы требовать наличие абстракций для рублей. Ваши попытки изначально некорректны.

А по поводу плавучки — это прямо выводится из ваших предложений, ведь только в рамках неё рождается подобная логика. В противном случае — она бы просто не родилась бы.

Яркий пример, когда хочется что-то сказать, а сказать нечего. Перегрузку операторов поддерживают многие языки. Из популярных больше поддерживают, чем не поддерживают. Да и суть не в этом, можно и .subtract писать, это не сильно хуже.

Ярки пример пустой болтовни и глупых ссылок.

В верхней строке мы видим одну хипстоту, в половине которой вообще ваш синтаксис не работает и нет типизации. Т.е. мимо. В нижней строке из живого и типизированного — это кресты, сишарп — всё.

Где оно работает? В луа? Без типов и через жопу? Удачи сравнить веи с эфирами. Что там ещё. Пистон? К тому же, это всё рантайм и никакого зерокост.

Таким образом из всех языков подобное могут только кресты, скорее всего шарп/раст, но раст пока не взлетел.

И того — два языка. Скорее всего даже шарп не подойдёт и того — полтора. Один живой и второй не взлетевший.

Какое-то у вас примитивное представление о программировании. Либо вы на ассемблере всю жизнь пишете, тогда простительно.

Ну дак покажите мне операции уровня языка за рамками сложения чиселок. Это же просто и без болтовни.

Джавовый JIT (Hotspot C2) вполне способен на такие оптимизации.

Не способен. Причина проста — жава просто неспособна на подобные абстракции.

Я полагаю, Clang с кодом на C++ легко разделается тоже.

Я за вас уже сказал это. Зачем повторять?

Тут вполне тривиальная цепочка оптимизаций инлайнинга, эскейп-анализа и констант-фолдинга.

Тут вполне тривиальное перечисление знакомых базвордов. Как я уже говорил — опишите мне механизм подобных абстракций поверх uint256, который был бы зерокост. Его нет и именно поэтому вы его не опишите.

Это всё в теории компиляции известно десятилетиями. Не знаю, что там в солидити, но учитывая, какие деньги крутятся в этериуме, хорошего компиляторщика нанять не должно быть большой проблемой.

Опять же. Как мы уже выясниили — на подобное способен сишный компилятор и мистический хотспот. Остальные, как я понимаю, так же не способны нанять хорошего компиляторщика, да? Вот ведь идиоты.

Шланг всего-то всем миром пилят десятилетие, как и хотспот санраклом. А надо было просто нанять хорошего компиляторщика и он бы за пару лет сваял.

Именно поэтому ни у одного языка не было приличного компилятора до появления ллвм. Они так же — просто не додумались нанять хорошего компиляторщика. Бывает.

Смысл последнего абзаца в том, что этериум = джаваскрипт и ничего с этим не поделаешь? Я думаю, в основу платформы никакая типизация не заложена и на ней вполне можно сделать нормальный язык, компилируемый в этериум. Либо он уже существует, просто автор этой статьи не умеет им пользоваться.

Смысл последнего абзаца в том, что есть сообщество. Вы не способны думать в рамках обстоятельств реального мира. Причина — ваша специализация. Так же со всем остальным.

Вся эта тема существует и базируется в рамках жаваскрипт мира. А жаваскрипт стеком не пользуются «хорошие компиляторщиики» и прочее. Можно глянуть на какой-нибудь там тайпскрипт, который не язык, а хелворд. Но это максимум до чего дошел мир жаваскрипта. Хотя есть причина тому, хотя это больше оправдание — он совместим с ЖС.

Где я это предлагал?

Каноничный пример того, как «я не я и шкура не моя».

Я предлагал не работать с голыми числами вообще, ни с целыми, ни с дробными.

Нет, предполагалась логика именно плавучки и не иначе. Абстракция вот так взять и поменялось логику работы с данными/операциями. И попрошу я вас описать «как» и вы ничего не ответите.

А там уже тип зависит от того, который навязан внешней системой.

Не верно. В рамках зерокост абстракций( а именно их вы определили) тип очень даже влияет на абстракции.

Объект класса Amount может всё внутри переводить в ваши любимые вэи, может использовать дробные числа, может хранить пару, это без разницы.

Не верно. Типичный пример манипуляций, когда говорим одно, а после делаем вид, что говорили другое.

Вы говорили не просто об абстракциях, а о зерокост абстракциях. Вот тут:
Хороший оптимизирующий компилятор можно выкинуть все эти слои абстракций, сгенерировав точно такой же конечный код.


А теперь как удобно получается. Уже завелась шарманка об «а если», «а поменять один класс». Об этом вы изначально не говорили, а переобувание на ходу — любимый приём болтунов.
Но в «жаву» такую логику можно при желании добавить.

Сюда так же.

А тут — либо нельзя, либо можно, но как нам не рассказали.

Классы есть, типы есть, перегрузка есть. Вроде как всё необходимое есть, а уже далее — дело техники.

И на остальные ваши рассуждения — тот же самый ответ.

Да не тот же. Автор(комментария) предлагает взять из копеек сделать рубли в рамках целых чисел. Он предлагает делать из переменной как минимум пару, а это уже усложнение операций( что явно противоречит его концепции «компилятор все поправит»).

По мне так автор просто пытается натянуть свои представления из мира плавучки на данную ситуацию.

А проблема решается просто — не надо вводить новых сущностей. Это в реальном мире есть рубли и копейки, а в данном мире рублей нет.

Поэтому всё решается очень просто. Есть копейки. Есть цена в копейках за цент(токен). И всё сразу стало ясно и понятно.

Объясню ситуацию ещё проще. У автора была задача продать центы за копейки. Он ввёл для себя доллары, рубли. Исчисляет цены в них. Потом переводит значения одних в доллары, других в рубли, потом считает и потом переводит обратно. Вопрос — зачем?

Слой 1. Можно легко пропустить где-нибудь нолик или неправильно их сосчитать и неправильно понять код. Язык должен позволять писать 1_000_000_000_000_000_000. Если позволяет, программисты должны этим пользоваться.

Это уродство и никто так писать не должен. Если вам это нравиться — так и пишите, но про «должны» — забудьте.

Слой 3. И это всё равно неправильно, потому что можно неправильно сделать вычисления. Например, умножить там, где надо разделить, передав не 10-18, а 10+18 попугаев.

Зачем вообще жить, если можно что-то сделать неправильно? Неважно, какой разрядности числа — всё это теряется и от разрядности ничего не зависит. Это просто рассуждения человека, который не привык к логике за пределами плавучки.

Должна быть объектная типизированная модель, исключающая возможность присваивания неправильного значения.

Это тот же самый ЖС, где типизация тут прикручена сбоку. А такой модели нет в и жаве.

Что-нибудь вроде WEI.amount(uint256 value) возвращает объект типа Amount, и чтобы получить сумму в эфире, надо вызвать WEI.amount(value).toEther().

И что же это изменит? Мне это в рамках value как-то помешает ошибиться?

Ну и самое главное, что никакой «суммы в эфире» — нет. Автор сам настроил себе абстракций и сам же их и должен поддерживать. Т.е. WEI.amount(value).toEther() == value по определению. Тут прослеживается, опять же, узость мышления и вас и автора, которые не могут мыслить за рамками плавучки.

В идеале это должно быть спрятано в методах родительских контрактов и всякие msg.value уже должны иметь тип Amount и писать надо msg.value.subtract(MY_TOKEN.amount(tokens)), где константа Currency MY_TOKEN = createStableCurrency(Ether.amount(1/5000)).

Это пустые рассуждения. Есть уровень языка, а есть уровень рантайма. Это общая проблема людей из мира жавы и иже с ним, которые не отличают язык от рантайма.

Есть язык, не важно какой, он умеет только складывать чиселки. Есть некая система(ниже языка), которая экспортирует api в язык. Естественно, что это api существует в рамках «ниже языка» и уже поверх него нагромождаются всякие абстракции. И неважно кто поставщик этих абстракций — вендор языка, либо кто-либо ещё. Всё это существует за рамками языка.

Язык может и перегрузку операторов поддерживать, тогда можно писать msg.value — MY_TOKEN.amount(tokens), но при этом компиляция не пролезет, если попытаетесь эфир вычесть из токенов или сложить токены с веями.

Жава не поддерживает, как и 99% языков. Что дальше?

Опять же — попытка пихать и рассуждать в придуманных вами абстракциях на уровне «языка». Язык он про сложение чиселок. Так везде. В жаве нет логики «нельзя сложить рубли с доллары» — потому что это логика внешнего уровня.

Точно так же и тут. Токены — это логика внешнего уровня — на уровне языка/платформы их не существует. Точно так же как на уровне жавы не существует рублей. И почему-то вы не идёте и не жалуетесь на это.

Пока всё выглядит так, что детям дали бомбой поиграться. И не надо рассказывать мне про стоимость исполнения на Etherium VM. Хороший оптимизирующий компилятор можно выкинуть все эти слои абстракций, сгенерировав точно такой же конечный код.

Такого компилятора у жавы нет, как и у 99% языков. Что же с этим поделать? Откуда он должен взяться тут?

Ну и самое главное, как я уже говорил. Это мир жаваскрипта( и этот «язык» — это жаваскрипт) — там люди не знают о типизации, компиляторах и прочем. Хипстерский мир вообще компилятор увидел только с релизом ллвм. Точно так же, как в мире жавы не знают о компилтайме и мощной типизации, как это знают в том же мире С++.

Как это мило. У одно скобочки, а у второго картинки. Детский садик. Минусовать смог — ответить не смог.

В целом ситуация та же. Сел в лужу — покажи пацанам клоунскую рожу, ведь ты на самом деле «не всерьёз». Я думаю, что они поверят. Не сомневаюсь.
Как я и говорил. Персонаж поплыл окончательно и бесповоротно. Выполнить условие и ответить за свой трёп так и не смог.

На что вы надеетесь? Что вы мне что-то сможете сказать? Удивить меня? Нет. Мне есть что ответить и рандомный нонейм с горящем седалищем не даст соврать.

Я всегда ставлю простые условия — отвечайте за то, что транслируете. Я не прошу и не просил вас играться со мною, пытаться меня ловить, демонстрировать мне все эти глупые попытки, которые я видел тысячи раз. Я разговаривал с сотнями посредственностей с одной и той же методичкой. Глупо думать, что на 349 что-то измениться.

Вы сами захотели в это играть и благополучно проиграли. Вы сделали ту же ошибку, что и вас предшественник. Совсем немножко переоценили свои силы — бывает. Я не в обиде.
Да полно буянить, я понимаю — обидно, таланта не хватило, совсем чуть-чуть, но не хватило. Бывает…

Обожаю оценки ото всяких рандомных нонеймов.

Вы, юноша, видимо не знаете, что такое идиоматическое выражение, я вам помогу — Вы несколько совсем неправильно используете выражение «шито белыми нитками».

Я же не ясно что-ли писал условия? Цитата, а далее должны следовать обоснования претензий.

Я там не буду комментировать внезапную смену контекста, а именно с «перечитай» на нитки.

А по поводу текущих глупых попыток. Болтать, а после делать какие-то выводы просто потому, что болтун так захотел — это сильно.

Наверное сложно — надо попроще. Дело в том, что перед обвинениями должны следовать обоснования этих самых обвинений. Без этого — это пустой трёп.

А теперь попробуйте дать цитату, а потом поподробнее о том что я там неправильно использовал. И результат будет предсказуем. Чего же вы боитесь.

А по поводу эти детсадовских попытках играть на «делаю вид, что оппонент дурак и все это знают — авось он поверит в это». Ну это же просто жалко. Вы мне хоть что-то новое покажете? Каждый раз новый трепач, но методичка почему-то одна на всех.

Ну, какие могут быть претензии от столь слабой аудитории? Ну, смешно ей-богу :-)

Естественно, что никаких. Это не претензии, а разочарование.
У Вас, мой юный друг, было всего одно идиоматическое выражение — как раз в кавычках.

Меня мало волнуют эти глупые попытки юлить. В очередной раз ответа нет.

Ничего нового — очередной любитель поболтать боится сказать мне хоть что-то конкретное т.к. знает что за этим последует.

А играть в дурака можно сколько угодно в надежде на то, что аудитория не допрёт. Сел в лужу — поспамь скобочек как идиот, авось кто и поверит.

Спасибо великодушно

Не моя вина, что мне оппонирует настолько слабая аудитория, которая плывёт уже после первого вопроса. Что поделать.
И учите наш великий язык, особенно в части использования идиоматических оборотов.

Поподробнее об этом. Есть что сказать — пожалуйста. Цитата + обоснование своих претензий.

А то болтать не предоставляя никакой конкретики, за которую вас можно поймать — «ваше» любимое занятие.

Всё же. Надеюсь, что мои ответы смотивируют вас на подумать. Ведь пока людям не хочется связать своё представление воедино — они не увидят, что оно «шито белыми нитками», да даже вообще не шито. И подобные персонажи и дальше будут паразитировать на этом.

А если вы думаете, что у подобных персонажей есть желание что-то делать. Перечитайте это через пару лет.
На этот вопрос я вам уже ответил, просто вы не желаете видеть ответ.

Конкретно. Где ответ. Прямую цитату в студию.

И какое отношение это имеет к тематике статьи, уважаемый студент ;)

Пхп-эксперт решил поюлить, сливаясь на тему статьи. Если поднятая мною тема не относится к теме статьи, то зачем на неё было отвечать? Почему бы не сказать это сразу, а не тогда, когда показался тупик?
О компетенциях человека могут говорить только его дела.

В параллельной вселенной. Абстрактные дела котируются только как попытка пустить пыль в глаза.

А дата вашего рождения, дата регистрации на Хабре, отсутсвие хоть какой-бы то ни было персональной информации и проверяемого опыта говорят все за Вас.

Что конкретно говорит, поподробнее.

Я доказал свои компетенции в IT, работая в Rocket-Internet

Моя полы?
Сколково

Ходили с классом на экскурсию?
крупнейших торговых площадках

Что это?

разрабатывая игры для социальных сетей

О таком я бы на публике не говорил.

Мои коллеги окончили(и даже преподают) в лучших ВУЗах страны.

Не смог сам — расскажи про коллег.

Могу предположить, что вы просто студент, которому поставили «неуд» ;)

Действительно, пхп-эксперт на связи. Эти глупые попытки такие смешные. Вам надо отвечать на вопросы, а не юлить. Хотя о чём это я.
Хорошо. Я бы мог и дальше с вами играть, но но я не хочу терять своё время. Вашу неспособность отвечать на вопросы — я уже продемонстрировал.

А по поводу ваших попыток играть в «я умею менять тему» — это глупо. Я не прошу вас там рассуждать о мире, либо о чём-то ещё. Я прошу ответить на вопрос. Каким образом в свои истории вы интегрируете физические ценности?
1

Information

Rating
Does not participate
Registered
Activity