Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Вёрстка веб-сайтов > Языки веб – программинга


Автор: Dr_VOLAND 8.4.2008, 21:04
Доброе время суток!
Меня интересует такой вопрос:
Скажем если ты знаешь Си, то тебе не составит труда понять большинство остальных, подобных языков программирования. 
Какой можно выделить язык программирования, для веб, имеющий такою же особенность?

Автор: Fortop 8.4.2008, 21:56
Любой

Автор: Dr_VOLAND 8.4.2008, 23:46
Как раз нет! Ну сравните к примеру Руби, и пхп.))

Автор: Fortop 9.4.2008, 01:10
И? Не вижу проблем.

Автор: krwlr 9.4.2008, 02:17
Цитата

Какой можно выделить язык программирования, для веб, имеющий такою же особенность? 

какую особенность? синтаксис? (большинство созданных языков программирования имеют Си-подобный синтаксис). Или может ошибки переполнения?  smile Конкретизируй, телепаты заболели.

Добавлено через 2 минуты и 11 секунд
пхп не учи! Ибо грех! На твоём месте я бы выучил перл или питон.

Автор: Grig 9.4.2008, 02:29
по моему Perl больше похож на С, хотя с Питоном судьба не сталкивала =)

Автор: awers 9.4.2008, 03:58
PHP 5 ) Ну или уже продолжать писать на сях CGI приклады

Автор: Itsys 9.4.2008, 07:13
как в том мультике ноги крылья - голова главное!

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

Автор: Fortop 9.4.2008, 12:34
Itsys
+1

P.S. Вообще-то, тему надо во флейм. Ибо  smile  и не несет смысловой нагрузки

Автор: Dr_VOLAND 9.4.2008, 18:51
Спасибо за коменты всем!

По порядку:

Fortop: Нет!, проблемы как раз есть. Если по-вашему таковых нету, приведите десять схожестей между языками (естественно синтаксических =)).

krwlr: ну так про все языки можно сказать. Но… пхп не похож на Си, по своему синтаксису и конструкциям.

Grig: про перл согласен, но он уже доживает свое, как мне кажется. Если не прав, очень внимательно выслушаю Ваше мнение.

awers: можно и так! =)

Itsys: Я за Вас очень рад, действительно очень. Но зачем же вы учили столько языков? Если можете перечислите их, и тогда на каких вы остановились?

Ну у меня тоже не хило наберется языков… если начать перечислять PostScript, HP Language, и всякие левые языки)) Шучу конечно! ;-)

Я вообще-то хотел услышать в данном топике:
По типу я знаю Си, и мне удобно перейти на Яву.
Я знаю «х» – язык веб-программирования, мне удобно перейти на «у» язык веб-программирования.

Автор: v2v 9.4.2008, 20:00
Цитата(Dr_VOLAND @  9.4.2008,  18:51 Найти цитируемый пост)

Я знаю «х» – язык веб-программирования, мне удобно перейти на «у» язык веб-программирования.

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

Добавлено через 1 минуту и 10 секунд
если ты хорошо  (4 из 5) знаешь Си  , то очень быстро можешь освоить любой другой язык  на не плохо (3 из 5) .

Автор: SamDark 9.4.2008, 20:19
Dr_VOLAND
Ну, раз вам так удобней...

Я знаю php, Java, object pascal, немного C++, чуть лучше C#, немного Perl + ещё всякая экзотика и мне удобно перейти на всё, что угодно. Но я ленив и если меня не вынудят - переходить не буду. Любую задачу можно решить на любом языке, если голова работает хорошо.

Что касается веб, тут учить надо не язык, а сопутствующие технологии: XML, HTML, CSS, HTTP и т.д.

Автор: TryLight 9.4.2008, 20:39
Dr_VOLAND
Я вообще не понял вопроса.
Если ты хочешь ездить - надо получить права. А потом уже каждый вибирает машину по своему вкусу.


Мне надо было работать со звуковым сигналом - я работал в MathLab, надо было автоматизировать измерение шумов - работал под National Instruments, надо было сверстать страницу - я использовал JS, будет сервак - буду использовать php.
Что-то удобнее делать во флэше и ActionScript, что-то на Delphi (и/или Visual Basic), что-то в Multimedia Builder.


Короче, меня что-то понесло... А сказать я только хочел, что если ты хочешь поиграться, то подойдет любой язык, в том числе и скрипты. Если хочешь серьезно изучать программинг - C/Delphi/Visual Basic. Потом будет пофигу на чем писать - кладешь под клавиатуру книжку (справочник по языку) и пишешь.


Напиши крестики-нолики на 3-4 приложениях/языках, поймешь о чем я.
По-моему, языки сейчас отличаются только синтаксисом. Структура программы и ООП-модель во всех одинакова.

Автор: SamDark 9.4.2008, 20:51
TryLight
Ой не. Модели различные есть. Тот же JavaScript вообще без ООП в его классическом понимании. В php до версии 5 ООП было мягко говоря слабым.

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

Автор: Fortop 9.4.2008, 20:52
1. Ветку однозначно в флейм smile

Цитата(Dr_VOLAND @  9.4.2008,  18:51 Найти цитируемый пост)

Fortop: Нет!, проблемы как раз есть. Если по-вашему таковых нету, приведите десять схожестей между языками (естественно синтаксических =)).


2. Арифметические операторы + логические + условные конструкции.
Схожестей будет более 10ка.

Автор: TryLight 9.4.2008, 21:03
Цитата("SamDark ")

Тот же JavaScript вообще без ООП в его классическом понимании. 

Ну, привет. document.write - это что такое?

А в php, насколько я успел его узнать, написав гостевуху, там она и не нужна.

Автор: Dr_VOLAND 9.4.2008, 21:21
Цитата(SamDark @  9.4.2008,  18:19 Найти цитируемый пост)
Что касается веб, тут учить надо не язык, а сопутствующие технологии: XML, HTML, CSS, HTTP и т.д. 

Однозначно! Хороший ответ.

Только я думал что для веба тоже можно выделить язык, который потом будет расширяться, like C++ -> C#

Автор: Itsys 9.4.2008, 23:33
Цитата(Dr_VOLAND @  9.4.2008,  18:51 Найти цитируемый пост)
Но зачем же вы учили столько языков?

Да всегда по разным причинам, всего не упомнишь
Цитата(Dr_VOLAND @  9.4.2008,  18:51 Найти цитируемый пост)
Если можете перечислите их, и тогда на каких вы остановились?

В школе
BASIC, я на нем даже игрушки писал с графическим интерфейсом smile (во были времена - делать было нечего)
В институте
Pascal
Потом для себя
С++, VB, Delphi
Потом для работы
Perl, JS, PHP и ASP
Потом для другой работы
PL/SQL
Потом для третьей работы
1С 6.0, потом 7.7 и 8.1
ну и HTML
Сейчас реально использую Perl, JS PL/SQL, ASP, 1C 7.7, 8.1 и HTML

Автор: SamDark 10.4.2008, 00:55
TryLight
Цитата
Ну, привет. document.write - это что такое?

Это вызов функции прототипа.

Автор: TryLight 10.4.2008, 01:15
SamDark
модель объектная - вызывается метод применительно к объекту "документ". вот что я хотел сказать.

Автор: MoLeX 10.4.2008, 08:38
Цитата(krwlr @  9.4.2008,  02:17 Найти цитируемый пост)
пхп не учи! Ибо грех! На твоём месте я бы выучил перл или питон.

какой грех, ты товарищ про что вообще... не смей, не зя гнать на РНР, так же как и на другой язык. все они хорошие, тока одним нравится тот же РНР (как мне) а другим Perl (или еще что-то), разницы на мой взгляд не ту на чем кодить, была бы голова и желание  smile 

Автор: egao 10.4.2008, 11:00
MoLeX, у пхп перегруженный синтаксис. и это не лечится.

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

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

Автор: SamDark 10.4.2008, 11:40
TryLight
То, что присутствуют объекты никоим образом не говорит, что присутствует ООП. В JS классического ООП нет, если конечно его не притягивать за уши. Да и в общем-то прототипы - штука более гибкая.

egao
У php ничуть не перегруженный синтаксис. Да, отсутствие пространств имён пока портит жизнь, но всё-таки бызовых конструкций там не много.

Что до пролога, так тут согласен. Но он для своих специфичных задач по логике.

Автор: biguser 10.4.2008, 14:31
перешел с пхп на джаву - очень доволен, до этого программировал на дельфях, немного си. 

недавно немного посмотрел в сторону асп.нет и мне не особо понравилось smile хотелось бы посмотреть еще в сторону питона и перла, но пока времени нет.

Автор: TryLight 10.4.2008, 14:35
SamDark
а что считать классическим ооп? 
js - это же не язык создания приложений, тех классов, которые он позволяет создавать вполне хватает для его круга задач.

Автор: SamDark 10.4.2008, 15:10
TryLight
Там нет классов. Там прототипы.

Цитата

Объектно-ориентированное программирование (ООП) — парадигма программирования, в которой основными концепциями являются понятия объектов и классов (либо, в менее известном варианте языков с прототипированием — прототипов).


http://ru.wikipedia.org/wiki/Объектно-ориентированное_программирование

Автор: nerezus 10.4.2008, 15:19
Цитата

Да, отсутствие пространств имён пока портит жизнь
 а их нету?

Автор: Dr_VOLAND 10.4.2008, 18:17
Спасибо всем за ответы! Они стали компонентами, общей картины. 
Теперь осталось мне понять, с какого бока на нее смотреть! ;-)

P.S.: Спасибо! Тему можно считать закрытой.

Автор: SamDark 10.4.2008, 20:55
nerezus
Будут в 5.3, но всё-равно вряд-ли раскидают по ним pecl-библиотеки, что весьма печально...

Автор: TryLight 10.4.2008, 21:07
SamDark
Цитата

С 1990 года началась эра так называемого объектно-ориентированного програм-
мирования (ООП). По существу, ООП основывается на расширении концепции
структуры. Если раньше в структуре хранились лишь статические данные, то те-
перь стало возможным хранить и описания активных элементов, называемых ме-
тодами. Такие структуры в языках ООП называются классами, или объектами.
Методы объекта описывают его поведение.

В.Дунаев, "Самоучитель JavaScript"

Пример привести или сам посмотришь?

Автор: nerezus 11.4.2008, 09:03
TryLight, ну и что?
Наличие классов в языке еще не позволяет использовать в языке ООП.
Примеров много: например VB6 или JS.

Для ООП необходимы 3 условия: наследование, полиморфизм, инкапсуляция. Если хоть одно не выполняется. тто это просто "объектный"язык.

Автор: SamDark 11.4.2008, 13:07
TryLight
Я не говорил, что в языке нет ООП. Я говорил, что там нет классического ООП.

Автор: TryLight 11.4.2008, 20:00
nerezus
а в чем проблема-то? в инкапсуляции? интерфейсом для JS является документ HTML, в котором предусмотренны свойства объектов hidden

вложенные объекты - легко

клонирование - на здоровье...

Автор: source777 11.4.2008, 20:39
TryLight, чтобы сказать, что язык полностью поддерживает ООП, надо чтобы он удовлетворял очень многим факторам, например, обязательным условием является парадигма "всё есть объект", причём слово "всё" понимается в самом широком смысле вплоть до литералов и типов... Даже если язык поддерживает вышеназванные 3 кита ООП, этого мало чтобы назвать его объектно-ориентированным...

Цитата(TryLight @  10.4.2008,  14:35 Найти цитируемый пост)
а что считать классическим ооп? 
ООП в SmallTalk

P.S. Я придумал термин "объектно-ориентированный", и вот что я вам скажу, я не имел ввиду С++. © Алан Кей
Куда уж тут JS, в котором отсутствует понятие класса, а наследование производится путём клонирования... JS реализует прототипную парадигму, и хоть по классификации она является подвидом ООП, но не является самой объекно-ориентированной парадигмой...


Что касается основной темы топика, то нет смысла искать золотой молот в виде языка, после изучения которого будут подвластны все остальные, такого ЯП нет, ибо подвластность определяется не языком, а мышлением, причём для каждой http://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9F%D0%B0%D1%80%D0%B0%D0%B4%D0%B8%D0%B3%D0%BC%D1%8B_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8Fнужен свой стиль мышления... Все они так или иначе относятся к 3-м базовым стилям мышления: императивный, декларативный и логический. Однако даже в пределах одного базового стиля переходы между парадигмами даются большинству с колоссальным трудом... 

Автор: TryLight 11.4.2008, 21:37
source777
достаточно компетентный ответ, я его принимаю,
и пусть он будет завершающим в нашей дискуссии.

Автор: nerezus 12.4.2008, 09:17
Цитата

этого мало чтобы назвать его объектно-ориентированным...
 Ну тогда C++ и даже классический и самй популярный пример - Java - не подойдут.
Хотя на джаве нельзя написать даже хеллоуворлд без ООП-подхода.

Автор: source777 12.4.2008, 12:46
Цитата(nerezus @  12.4.2008,  09:17 Найти цитируемый пост)
Ну тогда C++ и даже классический и самй популярный пример - Java - не подойдут.
ну что ж поделаешь, зато подойдут SmallTalk, C#, Ruby, вот тебе и классический список. А С++ ОО-языком естественно не является, он так и остался "Си с классами"...

Автор: SamDark 12.4.2008, 14:56
source777
В C# вроде примитивы остались…

Автор: nerezus 12.4.2008, 15:09
SamDark, только что проверил - даже всякие int имеют методы  вроде ToString() и подобных.

Хотя я сомневаюсь, что такая МЕЛОЧЬ способна разбить жабу и до диез на разные группы.

Автор: SamDark 12.4.2008, 16:23
nerezus
Спасибо. Я уже начал забывать smile

Автор: source777 14.4.2008, 21:52
Цитата(nerezus @  12.4.2008,  15:09 Найти цитируемый пост)
Хотя я сомневаюсь, что такая МЕЛОЧЬ способна разбить жабу и до диез на разные группы. 
Это не такая уж мелочь, особенно усиливают отличие появившиеся в .NET 3.0 методы расширений, при помощи которых можно расширить любой тип своими методами, т.е. конструкция в стиле 
Код

DateTime date = 20.YearsAgo();
вполне спокойно может работать в C#, подобную же функциональность можно реализовать на Ruby...

P.S. Вероятно C# и Java можно относить к одной группе языков, однако лично я склонен считать, что C# реализует гораздо более чистую модель ООП и к тому С# уже можно считать мультипарадигменным языком, т.к. он поддерживает некоторые функциональные возможности, о которых языки типа Java могут только мечтать... Поэтому в моей классификации C# и Java входят в разные группы ЯП, однако я не собираюсь навязывать её всем остальным... smile 

Автор: nerezus 15.4.2008, 07:25
Вот прикол.
Python оказывается так умеет.

Код

>>> i = 6
>>> i
6
>>> class I(int): pass
...
>>> i = I(665)
>>> i
665
>>> dir(int)
['__abs__', '__add__', '__and__', '__class__', '__cmp__', '__coerce__', '__delattr__', '__div__', '__divmod__', '__doc__', '__float__', '__f
loordiv__', '__getattribute__', '__getnewargs__', '__hash__', '__hex__', '__index__', '__init__', '__int__', '__invert__', '__long__', '__ls
hift__', '__mod__', '__mul__', '__neg__', '__new__', '__nonzero__', '__oct__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rd
iv__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__rpow_
_', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__xor__']
>>>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)