Случилось так, что после 5-ти лет работы в одной фирме, занимающейся созданием web-сайтов, где я работал php-программистом, я решил сменить место работы. Когда в объявление нашлось то, что мне подошло по параметрам, я поехал на собеседование, и оказалось, что нужно будет заниматься поддержкой, и дописанием новых модулей для сайта, который работает на coldfusion.
Тогда я впервые услышал это слово, и сразу сказал, что понятия не имею что это. На что мне ответили: «Программистов coldfusion нет, поэтому мы берем web-программиста, чтобы он освоился на новой платформе». После обсуждения всех тонкостей, я согласился, и вот теперь я пишу на coldfusion.
Первое время напрягал синтаксис языка, который является теговым, т.е. все операторы начинаются с "<cf", небольшой пример кода, чтобы понимать о чем я:
<cfloop from=«1» to=«10» index=«i»>
<cfif i mod 2 EQ 0>
<cfoutput>#i#</cfoutput>
</cfif>
</cfloop>
Здесь цикл от 1 до 10, и в нем проверка и вывод только четных цифр.
Второй момент — это постоянно хочется поставить точку с запятой в конце строчки, либо написать переменную $i вместо #i# (синтаксис coldfusion).
И также долго не мог привыкнуть к буквенным операторам сравнения, т.е. EQ, вместо ==; LT (LE) вместо < (<=) и GT (GE) вместо > (>=).
Для того, чтобы вывести на экран значение переменной, необходимо ее обрамлять в теги <cfoutput>. Так, конечно, делать не красиво, но если в php не объявлена переменная, то и ничего страшного, в coldfusion каждая переменная должна обязательно инициализироваться, иначе человек, заходя на сайт, написанный на coldfusion, увидит угрожающе сине-серый экран, с ошибкой.
На php.net увидел фразу, с которой абсолютно согласен: «Cold Fusion is designed with non-programmers in mind, while PHP is focused on programmers». Этот язык имеет больше уже готовых, заточенных под web конструкций, т.е. не нужно что-то дописывать самому, либо искать готовые библиотеки. Например, валидация формы, средствами языка, генерация pdf-файла, отправка почты (в отличие от функции mail() в php, где нужно писать заголовки, здесь все задается в виде параметров), отладчик, который привязывается к ip адресу, и прямо на странице сайта выдаются все параметры, все подключенные файлы, запросы к БД, время генерации страницы — это очень удобно, и экономит массу времени.
Из минусов, могу отметить то, что coldfusion — платный, и стоит немалых денег. Минус это или плюс, каждый решит сам, но он работает под ОС windows. Также, на русском языке крайне мало информации, и уж тем более примеров. Т.е. недавно была задача загрузки и кодирования видео на стороннем сервисе, так там в документации все примеры были на php. Иными словами, никаких «готовых велосипедов» нет, приходится все писать самому. На иностранных сайтах иногда можно найти какие-то примеры, хороший и информативный сайт в этом плане www.bennadel.com.
Coldfusion мне кажется какой-то экзотикой, и php все равно ближе. Наверное, программистам, нужен язык программирования, а не конструктор для сборки, каким, в большей степени является coldfusion. Но это лично мое мнение.
Тогда я впервые услышал это слово, и сразу сказал, что понятия не имею что это. На что мне ответили: «Программистов coldfusion нет, поэтому мы берем web-программиста, чтобы он освоился на новой платформе». После обсуждения всех тонкостей, я согласился, и вот теперь я пишу на coldfusion.
Первое время напрягал синтаксис языка, который является теговым, т.е. все операторы начинаются с "<cf", небольшой пример кода, чтобы понимать о чем я:
<cfloop from=«1» to=«10» index=«i»>
<cfif i mod 2 EQ 0>
<cfoutput>#i#</cfoutput>
</cfif>
</cfloop>
Здесь цикл от 1 до 10, и в нем проверка и вывод только четных цифр.
Второй момент — это постоянно хочется поставить точку с запятой в конце строчки, либо написать переменную $i вместо #i# (синтаксис coldfusion).
И также долго не мог привыкнуть к буквенным операторам сравнения, т.е. EQ, вместо ==; LT (LE) вместо < (<=) и GT (GE) вместо > (>=).
Для того, чтобы вывести на экран значение переменной, необходимо ее обрамлять в теги <cfoutput>. Так, конечно, делать не красиво, но если в php не объявлена переменная, то и ничего страшного, в coldfusion каждая переменная должна обязательно инициализироваться, иначе человек, заходя на сайт, написанный на coldfusion, увидит угрожающе сине-серый экран, с ошибкой.
На php.net увидел фразу, с которой абсолютно согласен: «Cold Fusion is designed with non-programmers in mind, while PHP is focused on programmers». Этот язык имеет больше уже готовых, заточенных под web конструкций, т.е. не нужно что-то дописывать самому, либо искать готовые библиотеки. Например, валидация формы, средствами языка, генерация pdf-файла, отправка почты (в отличие от функции mail() в php, где нужно писать заголовки, здесь все задается в виде параметров), отладчик, который привязывается к ip адресу, и прямо на странице сайта выдаются все параметры, все подключенные файлы, запросы к БД, время генерации страницы — это очень удобно, и экономит массу времени.
Из минусов, могу отметить то, что coldfusion — платный, и стоит немалых денег. Минус это или плюс, каждый решит сам, но он работает под ОС windows. Также, на русском языке крайне мало информации, и уж тем более примеров. Т.е. недавно была задача загрузки и кодирования видео на стороннем сервисе, так там в документации все примеры были на php. Иными словами, никаких «готовых велосипедов» нет, приходится все писать самому. На иностранных сайтах иногда можно найти какие-то примеры, хороший и информативный сайт в этом плане www.bennadel.com.
Вместо вывода.
Coldfusion мне кажется какой-то экзотикой, и php все равно ближе. Наверное, программистам, нужен язык программирования, а не конструктор для сборки, каким, в большей степени является coldfusion. Но это лично мое мнение.