пятница, 8 октября 2010 г.

C++ оглядываясь назад

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

Программируя 3 года на PHP я, конечно, сильно расслабился. Прочитать файл - один вызов. Регуляркой выкусить нужное значение - второй вызов. Проверить аргументы командной строки - третий вызов. Записать изменённое значение в файл - четвёртый вызов.

Вот то, от чего я отвык:

Я отвык объявлять переменные в таком количестве. Отвык, что для того, чтобы указать, что переменная используется надо за собой тащить ещё булев флаг, который указывает использовалась переменная или нет.

Я отвык, что преобразование строки в число и числа в строку это проблема. Мне ни разу не очевидно, почему, когда надо получить первое число из строки, мне надо хардкодить, вместо того, чтобы вызвать одну готовую функцию.

Ещё расстроило немного то, что хоть C++ и объектно ориентированый язык, аргументы командной строки в него передаются также как в С через argc и argv. Пришлось даже функцию написать, которая преобразовала это безобразие в коллекцию строк.

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