LINUX.ORG.RU
ФорумTalks

Программистский мир окончательно скатился.


2

3

!Ъ: http://habrahabr.ru/post/172119/

Ъ:

На ранних стадиях развития интернета, разработчикам приходилось использовать бедные, убогие языки программирования. Приходилось использовать только функции и операторы. Никаких объектов, никаких интерфейсов, никакого dependency injection!

Скажем, чтобы выполнить простую операцию сложения, нашим отцам приходилось писать: 1+1. Да, серьезно.

Но теперь-то у нас есть PHP 5.3 с отличной имплементацией ООП! Представляем библиотеку SimplePHPEasyPlus! SimplePHPEasyPlus позволит вам складывать два числа современным способом, с использованием ООП. Он быстрый, простой, гибкий и оттестированный. Чтобы добавить 1 к 1, нужно всего лишь выполнить следующее:

use SimplePHPEasyPlus\Number\NumberCollection;
use SimplePHPEasyPlus\Number\SimpleNumber;
use SimplePHPEasyPlus\Number\CollectionItemNumberProxy;
use SimplePHPEasyPlus\Parser\SimpleNumberStringParser;
use SimplePHPEasyPlus\Iterator\CallbackIterator;
use SimplePHPEasyPlus\Operator\AdditionOperator;
use SimplePHPEasyPlus\Operation\ArithmeticOperation;
use SimplePHPEasyPlus\Operation\OperationStream;
use SimplePHPEasyPlus\Engine;
use SimplePHPEasyPlus\Calcul\Calcul;
use SimplePHPEasyPlus\Calcul\CalculRunner;


$numberCollection = new NumberCollection();

$numberParser = new SimpleNumberStringParser();

$firstParsedNumber = $numberParser->parse('1');
$firstNumber = new SimpleNumber($firstParsedNumber);
$firstNumberProxy = new CollectionItemNumberProxy($firstNumber);

$numberCollection->add($firstNumberProxy);

$secondParsedNumber = $numberParser->parse('1');
$secondNumber = new SimpleNumber($secondParsedNumber);
$secondNumberProxy = new CollectionItemNumberProxy($secondNumber);

$numberCollection->add($secondNumberProxy);

$addition = new AdditionOperator('SimplePHPEasyPlus\Number\SimpleNumber');

$operation = new ArithmeticOperation($addition);

$engine = new Engine($operation);

$calcul = new Calcul($engine, $numberCollection);

$runner = new CalculRunner();

$runner->run($calcul);

$result = $calcul->getResult();
$numericResult = $result->getValue(); // 2

Библиотека годится для применения с продакшене. Наслаждайтесь!

Я прекрасно понимаю, что это типа такая шутка, да (ведь шутка, правда?). Но кто-то же потратил туеву хучу времени на то, чтобы это написать. И немало найдется идиотов, которые её будут использовать.

Я в печали.

Ответ на: комментарий от PolarFox

в си нет строк

Что ты подразумеваешь под строками? В С есть символьный массив с окончанием на 0 — чем это тебе не строка?

А говнокодировки с переменным шагом в жопу!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

А говнокодировки с переменным шагом в жопу!

Полностью согласен. Там ведь думать надо, знаний уровня школьного бейсика уже не хватает.

note173 ★★★★★
()
Ответ на: комментарий от Eddy_Em

Что ты подразумеваешь под строками? В С есть символьный массив с окончанием на 0 — чем это тебе не строка?

Строка — несколько символов по-порядку, абстракция. char* — не строка, а массив байт. Байт — не символ, а число от 0 до 255.

А говнокодировки с переменным шагом в жопу!

Можешь хранить в utf-32. Но при использовании нормальных библиотек тебя такие подробности волновать в прочем не должны. Для связи с внешним миром нужно пользоваться методами encode и decode, которые конвертируют между строкой (абстрактной) и её представлением в виде массива байт в utf-8.

PolarFox ★★★★★
()
Ответ на: комментарий от Eddy_Em

слушаешь себе 80-й порт, как только придет правильный GET-запрос, отдаешь веб-страничку

а как только неправильный - быстренько падаешь с core dump-ом, чо там.

Reinar
()
Ответ на: комментарий от note173

Когда видишь фабрику фабрику фабрик уже начинаешь запутываться, где шутка, а где - нет.

AlexCones ★★★
() автор топика
Ответ на: комментарий от note173

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

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Reinar

неправильный

Кто неправильный? С фига ли гости понаехали?

Если неправильный, ты просто игнорируешь его.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

И ты запихнешь свой сраный юникод на микроконтроллер? No WAY!

Если возникнет необходимость в чём-либо помимо ASCII, то скорее всего да.

PolarFox ★★★★★
()
Ответ на: комментарий от Eddy_Em

т.к. одна и та же буква может в быдлоюникоде иметь несколько разных интерпретаций

А в однобайтных кодировках нет букв — нет проблем. Хотя даже в твоей любимой koi8 «a» аж два раза встречается.

PolarFox ★★★★★
()
Ответ на: комментарий от Eddy_Em

вместо memcmp для сравнения двух строк

Быдлокод как есть. Даже в европейских языках есть лигатуры. Плюс считать naive и naïve двумя разными словами (это всё ещё latin1, быдлоКОИ8 — проблемы негров) — идиотизм. Особенно в вебе.

x3al ★★★★★
()
Ответ на: комментарий от Eddy_Em

И ты запихнешь свой сраный юникод на микроконтроллер?

Микроконтроллеры — особый случай, ими заниюматся специально обученные низшие существа.

note173 ★★★★★
()
Ответ на: комментарий от PolarFox

Хотя даже в твоей любимой koi8 «a» аж два раза встречается.

4.2: одна из них — латинская. А это — другая буква. А у вас одних только букв ē — вагон и маленькая тележка… Извращенцы чертовы!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

только букв ē

4.2 Одна из них из диапазона latin-1, другая — в общем-то два символа.

PolarFox ★★★★★
()
Ответ на: комментарий от Eddy_Em

Эм. Если в вебе меня просят не юзать символы за пределами КОИ8, то я обычно посылаю этот сайт лесом (разве что он реально нужен по работе). И вообще, не стоит надеяться, что страницу будут смотреть только русские

x3al ★★★★★
()
Ответ на: комментарий от x3al

не стоит надеяться, что страницу будут смотреть только русские

Они внедрят тебе эксплоит, который будет показывать японские иероглифы?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Босс: «теперь наша программа будет использоваться в Китае, Корее, Индии, Германии, Израиле, ОАЭ, а не только в сраной рашке».

Eddy_Em: «ой, простите, я жидко обосрался».

PolarFox ★★★★★
()
Ответ на: комментарий от Eddy_Em

Смотря какой веб. Сложных моментов там в целом побольше, чем во всяких встраиваемых железках.

note173 ★★★★★
()
Ответ на: комментарий от Eddy_Em

Eddy_Em: «иди в жопу!»

Босс: «вы уволены». И наймёт кого-нибудь, кто не фанатеет от технологий ранних восьмидесятых.

PolarFox ★★★★★
()
Ответ на: комментарий от PolarFox

Босс: «вы уволены»

Не имеет права, т.к. я не обязан заниматься херней, не относящейся к моей непосредственной работе.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

У меня такое же желание, когда вижу быдлоюникод.

// а вообще, я уже давно перестал комментарии на русском писать — только для gettext'а.

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

dikiy ★★☆☆☆
()
Ответ на: комментарий от Eddy_Em

И ты запихнешь свой сраный юникод на микроконтроллер? No WAY!

на микроконтроллер его ставить не обязательно, хотя в принципе никто не мешает. Ведь «mp3»-плееры работают именно с юникодом.

dikiy ★★☆☆☆
()
Последнее исправление: dikiy (всего исправлений: 1)
Ответ на: комментарий от dikiy

писать комментарии на русском

Нехорошо это. Мне на ЛОРе неоднократно говорили, но когда на Stackexchange зарегистрировался, дошло до меня это окончательно.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

писать комментарии на русском

Нехорошо это. Мне на ЛОРе неоднократно говорили, но когда на Stackexchange зарегистрировался, дошло до меня это окончательно.

нормально это. Особенно, если код для себя или для небольшого круга пользователей. Иногда даже намешиваю немецкие комменты с русскими :)

dikiy ★★☆☆☆
()
Последнее исправление: dikiy (всего исправлений: 1)
Ответ на: комментарий от dikiy

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

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

начинают интересоваться, что за хрень ты там понаписал...

Эти лохи не умеют пользоваться гуглотранслейтом?

J ★★★★★
()
Ответ на: комментарий от dikiy
package main

import "fmt"

func main() {
	уняня := "фыва пролджэ ♥"
	fmt.Println(уняня)
	ы := 0
	for _, символ := range уняня {
		fmt.Print(ы, ":", string(символ), "; ")
		ы++
	}
	fmt.Println()
}
фыва пролджэ ♥
0:ф; 1:ы; 2:в; 3:а; 4: ; 5:п; 6:р; 7:о; 8:л; 9:д; 10:ж; 11:э; 12: ; 13:♥; 

В некоторых языках юникод просто работает.

PolarFox ★★★★★
()
Ответ на: комментарий от Eddy_Em

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

это да. Но лично мне пока выкладывать особо нечего.

А вот насчет имено файлов уже не повозражаешь, да? :)

dikiy ★★☆☆☆
()

Уже запатентовали? А автора покажут по телевизору в кач-ве инноватора и надежды России?

Sociopsih ★☆
()
Ответ на: комментарий от theNamelessOne

Нет кодировок кроме KOI8-R, и Эдди — пророк ее.

лучше представь, каким воинствующим был Эдди в спорах CP1251 vs. KOI8-R, если он даже на UTF так гонит. Это наверное было феерично.

dikiy ★★☆☆☆
()
Ответ на: комментарий от dikiy

лучше представь, каким воинствующим был Эдди в спорах CP1251 vs. KOI8-R, если он даже на UTF так гонит

Вряд ли. Его ненависть к юникоду (как и ко многим другим вещам, которые облегчают жизнь), обусловлена патологической тягой к кактусам. Поэтому мне кажется странным, почему при этом он должен не любить CP1251?

theNamelessOne ★★★★★
()
Ответ на: комментарий от Eddy_Em

Эдди, кстати объясни мне пожалуйста как ты умудряешься пользоваться плеерами. Ведь тэги к mp3 я так понимю у тебя все в KOI8?

dikiy ★★☆☆☆
()
Ответ на: комментарий от Eddy_Em

Ржи дальше. А я презираю пыхпых. И пыхтон презираю. И жымчужыну. И всякие плюсы.

И зарабатываешь 200к тимлидом на ведущем проекте страны!

tazhate ★★★★★
()

То что он скатился понятно уже давно. Это ООП головного мозга уже достало. Я уже не раз слышал жалобы от молодого поколения мол на Javascript писать невозможно потому что там нет классов )) И практически не видел живых программистов которые бы реально понимали что такое ООП, а не просто написал слово class значит уже сразу ООП.

urxvt ★★★★★
()
Ответ на: комментарий от Eddy_Em

В сях код четкий, однозначный и красивый. Баги ловить легко. Это тебе не пыхпых какой-нибудь.

Синтаксис PHP слизан с C чуть менее, чем полностью. Там даже функции типа substr и printf одинаково называются.

goingUp ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.