LINUX.ORG.RU
ФорумTalks

Пыхпыхер зажыгает


0

0

>С тем же успех можно сказать про набор текста в Ворде. А у вас скорость разработки это сидеть потеть и придумывать объектную парадигму и компилить классы? Смысло-то не в классах и ООП, а в удобстве и быстроте.

httр://www.sql.ru/forum/actualthread.aspx?bid=38&tid=329892&pg=-1 Айда глумиться над ублюдком, там вход бесплатный

anonymous

> Смысло-то не в классах и ООП, а в удобстве и быстроте.

С первой частью предложения абсолютно согласен. Если ко второй добавить "качество" то вообще полностью согласен.

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

>С первой частью предложения абсолютно согласен. Если ко второй добавить "качество" то вообще полностью согласен.

Если бы у того кодера получалось бы на PHP качественно, удобно и быстро, он не полез бы на Java-форум узнавать, как писать на жабке. PHP строго детерминированно приводит к подобному описанному в этой статье http://digg.com/programming/How_To_Write_Unmaintainable_Code_5 результату

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

Хех, забавная статейка =))) ...New Uses For Names For Baby. Buy a copy of a baby naming book and you'll never be at a loss for variable names...

AiLr ★★
()

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

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

> Для меня, как не начинавшего разбираться с Perl, PHP стал заменой Perl.

НУ всё теперь ты обречён писать пыхпых поделия до конца жизни:) У тебя ещё есть шанс вернись к перлу, а также питону и руби.

CrazyPit ★★★
()

Цитата этого товарища с sql.ru :

>Что-то как-то вяло вы Java программисты расхваливаете свою Javy.

Очевидно, что он просто провоцирует флейм, посмотрел на вакансии видимо, обнаружил что за PHP меньше платят и решил поднять самооценку ;)

Вот и всё, конструктива нет совсем.

guardian
()
Ответ на: комментарий от robot12

Мы слышали про табуляцию
Мы ею пользуемся

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

> язык, зависящий от форматирования - зло.

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

Haskell и Occam тоже в топку?

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

> использование пробелов в качестве синтаксического элемента недопустимо и есть зло. ))

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

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

>После написания одной софтины на нем возвращение к явным операторным скобкам в C-подобных -- мучение. На пайтоне код компактней в разы получается (чем...).

Эволюция, наглядно показывающая лень=). Сначало Си-прогеры ругались на begin end паскаля. Теперь питоноводы ругаются на скобки си. Что будет дальше?

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

> Придавать внимание синтаксису языка программирования не профессианально и глупо.

Профессианал, запусти питон, набери import this, и убедись, что в седьмой строке написано "Readability counts."

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

И что? Читаемости можно достичь во абсолютном большинстве нормальных языков, где идентификаторы можно называть произвольным колилчеством символов и можно делать комменты. Зависит не от языка а от разработчика.

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

В гробу я видел такие языки, где читаемости надо ДОСТИГАТЬ ХИТРЫМ ОБРАЗОМ. Почему-то чужой код на Руби и Перле я читаю долго, тяжко и с матами. А код на Хаскеле - только после длительной медитативной подготовки, приняв димедрола. %-P Лисп и то приятнее. Ну а Питон вообще читается легко, как Жюль Верн. Так что свои сказки девачкам рассказывайте, дорогой.

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

хз. все вышеперечисленные языки читаються отлично, если автор писал граматно. Читаемость отличаться только если автор писал в стиле "write only", тогда perl конечно в жопе, а питон наоборот:) - для простых алгоримтов. Там же где нужно описывать предметную область питон и перл в жопе, а лисп, хаскель, руби рулят (в порядку убывания рульности).

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

Ты после димедрола читать можешь? Я только во сне...

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

> Почему-то чужой код на Руби и Перле я читаю долго, тяжко и с матами. А код на Хаскеле - только после длительной медитативной подготовки, приняв димедрола.

просто у тебя мозг отравлен си-подобным синтаксисом и питоном.

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

> просто у тебя мозг отравлен си-подобным синтаксисом и питоном.

Дай угадаю, ты любишь перл?

Меня устроит любой синтаксис, если он а) продуманный и б) простой. А такое быдлонагромождение, как в перле, руби и хаскеле идёт в ж-пу.

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

> руби и хаскеле 

Где?????

Беру первый попавшийся хаскель файл:

newtype Light = Light GLsizei
   deriving ( Eq, Ord, Show )

marshalLight :: Light -> Maybe GLenum
marshalLight (Light l) = lightIndexToEnum l

--------------------------------------------------------------------------------


light :: Light -> StateVar Capability
light (Light l) = makeCapability (CapLight l)

maxLights :: GettableStateVar GLsizei
maxLights = makeGettableStateVar (getSizei1 id GetMaxLights)

--------------------------------------------------------------------------------


data FrontFaceDirection =
     CW
   | CCW
   deriving ( Eq, Ord, Show )

marshalFrontFaceDirection :: FrontFaceDirection -> GLenum
marshalFrontFaceDirection x = case x of
   CW -> 0x900
   CCW -> 0x901

unmarshalFrontFaceDirection :: GLenum -> FrontFaceDirection
unmarshalFrontFaceDirection x
   | x == 0x900 = CW
   | x == 0x901 = CCW
   | otherwise = error ("unmarshalFrontFaceDirection: illegal value " ++ show x)


И??? Помойму всё придельно ясно и чётко.

Беру первый попавшийся руби файл:


  # * <tt>expires</tt> - the time at which this cookie expires, as a +Time+ object.
  # * <tt>secure</tt> - whether this cookie is a secure cookie or not (default to false).
  #   Secure cookies are only transmitted to HTTPS servers.
  module Cookies
    protected
      # Returns the cookie container, which operates as described above.
      def cookies
        CookieJar.new(self)
      end

      # Deprecated cookie writer method
      def cookie(*options)
        @response.headers["cookie"] << CGI::Cookie.new(*options)
      end
  end
  
  class CookieJar < Hash #:nodoc:
    def initialize(controller)
      @controller, @cookies = controller, controller.instance_variable_get("@cookies")
      super()
      update(@cookies)
    end

    # Returns the value of the cookie by +name+ -- or nil if no such cookie exists. You set new cookies using either the cookie method
    # or cookies[]= (for simple name/value cookies without options).
    def [](name)
      @cookies[name.to_s].value.first if @cookies[name.to_s] && @cookies[name.to_s].respond_to?(:value)
    end
    
    def []=(name, options)
      if options.is_a?(Hash)
        options = options.inject({}) { |options, pair| options[pair.first.to_s] = pair.last; options }
        options["name"] = name.to_s
      else
        options = { "name" => name.to_s, "value" => options }
      end
      
      set_cookie(options)
    end
    
Помому код идельно самодокументериуем. Разве что сшник не врубитсься 
сразу в итераторы. А так тот же код на питоне смотрелься бы ублюдочней
 из-за self и из-за невозможности красиво задавать имена методам, 
перегружающим операторы. 

Берём первый попавшийся файл н а perl:

sub File_read
{
    $sFilename = @_[ 0 ];

    @aFileContentList = "";
    open( F_CURRPIC, "<" . $sFilename ) || "Could not open file " . $sFilename . " !<BR>\n";
    while( <F_CURRPIC> )
    {
        push( @aFileContentList, $_ );
    }
    close( F_CURRPIC );

    return @aFileContentList;
}   ##File_read


sub HTTP_getRequest
{
    # post- or get- method ?
    if( $ENV{ 'REQUEST_METHOD' } eq 'GET' )
    {
        # get parameters from querystring (get)
        $sRequest = $ENV{ 'QUERY_STRING' }
    }
    else
    {
        # get parameters from stdin (post)
        read( STDIN, $sRequest, $ENV{ 'CONTENT_LENGTH' } );
    }
    # process parameters
    @aRequestList = split( /&/, $sRequest );
    foreach $Feld ( @aRequestList )
    {
        ( $name, $sValue ) = split( /=/, $Feld );
        $sValue =~ tr/+/ /;
        $sValue =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
        $sValue =~ s/<!--(.|\n)*-->//g;
        $aRequestMap{ $name } = $sValue;
    }

    return %aRequestMap;
}   ##HTTP_getRequest

уже хуже, но тоже так ничё... 

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