Доступно и всерьез о людях и  взаимоотношениях между ними
Добро пожаловать в Socionics.org Войти | Регистрация | Помощь
in Найти
.

Программирование и соционика

Последний ответ: DarkJackLondon   01/05/2017, 5:26   Ответов: 103
Страница 5 из 7 [Всего 104 записей]   « Первая ... « 3 4 5 6 7 »
Сортировать сообщения: Previous Next
  •  10/17/2004, 5:07 684102 in reply to 684042

    QUOTE (Balancer @ Oct 8 2004, 01:12 ) А о реальных проектах спрашивать глупо. Т.к. пишут обычно не на лучшем языке, а на том, который знают. А программистов-универсалов в наше время ничтожно мало. Учитывая, что большие проекты в одиночку не делаются, универсалам приходится ещё и подстраиваться под основную серую массу.

    Нефига, пишут обычно на том языке, на котором уже существует обширная библиотека. Я хочу поглядеть как ты на этом самом О Calm будешь ваять меню шки с кнопочками.
  •  10/18/2004, 8:42 684103 in reply to 684042

    QUOTE (Мышкин @ Oct 17 2004, 09:07 ) Я хочу поглядеть как ты на этом самом О Calm будешь ваять меню шки с кнопочками.

    Программ, которые рисуют менюшки с кнопочками не писал лет шесть. А нафига они мне? :)
  •  10/18/2004, 15:06 684104 in reply to 684042

    А причём тут ты? Я про реальные проекты спрашивал.
  •  10/19/2004, 12:30 684105 in reply to 684042

    QUOTE (Мышкин @ Oct 18 2004, 19:06 ) А причём тут ты?

    Ты меня спросил как в O'Caml рисовать менюшки с кнопочками. Вот я и ответил, что оно мне не нужно. В моих _реальных_ проектах последних лет менюшки с кнопочками браузер клиента рисует, а не сервер :)

    А так - под O'Caml есть разные GUI-библиотеки.

    Ну и никто не мешает мне задействовать F# - возможности языка несколько победнее, конечно, и помедленнее немного, но зато - .NET есть .NET. Интерфейс хоть в GTK# рисовать можно :)
  •  10/19/2004, 12:40 684106 in reply to 684042

    QUOTE
    Ты меня спросил как в O'Caml рисовать менюшки с кнопочками. Вот я и ответил, что оно мне не нужно. В моих _реальных_ проектах последних лет менюшки с кнопочками браузер клиента рисует, а не сервер :)


    А клиентскую сторону ты на каком языке пишешь? Или это клиент пускай сам пишет?
    QUOTE
    А так - под O'Caml есть разные GUI-библиотеки.


    А тебя не затруднит меня с ними ознакомить? Мне правда интересно, что на этом дурацком языке можно нормальное написать.

    QUOTE
    Ну и никто не мешает мне задействовать F# - возможности языка несколько победнее, конечно, и помедленнее немного, но зато - .NET есть .NET. Интерфейс хоть в GTK# рисовать можно :)


    Ну тебе никто не мешает и VC++ задействовать, но я так понял у тебя задача стоит выебнуться какие ты экзотичные языки знаешь, а всё что в дот нет входит это стандарт уже, настоящему индейцу западло ходить тропами бледнолицых, да, Балансер?
  •  10/19/2004, 13:03 684107 in reply to 684042

    QUOTE (Мышкин @ Oct 19 2004, 16:40 ) А клиентскую сторону ты на каком языке пишешь? Или это клиент пускай сам пишет?

    А велосипед давно изобрели. Или операционную системы ты тоже сам будешь писать?

    >А тебя не затруднит меня с ними ознакомить? Мне правда интересно, что на этом дурацком языке можно нормальное написать.

    http://caml.inria.fr/humps/caml_Graphics_a..._tool_kits.html

    Если интересуют именно примеры синтаксиса, то писанина там в духе
    CODE
    let create_and_fill_model () =
     let liststore = GTree.list_store cols in

     (* Append a row, and fill it with some data *)
     let append (name, year_born) =
       let row = liststore#append () in
       liststore#set ~row ~column:col_name name;
       liststore#set ~row ~column:col_year_born year_born
     in
     List.iter append [
       ("Abel", 1963);
       ("Park", 1971);
       ("Lee", 1930);
     ];

     liststore





    >Ну тебе никто не мешает и VC++ задействовать

    Никто. Но C++ медленнее, беднее возможностями и позволяет допускать больше ошибок.

    >но я так понял у тебя задача стоит выебнуться какие ты экзотичные языки знаешь

    Да нет, если б я про экзотику речь бы завёл, то я бы вытащил APL и тот же Forth (на котором, кстати, немало проектов написал и который в реализации SP-Forth'а к моему удивлению даже O'Caml в паре тестов по скорости обошёл :D)

    >а всё что в дот нет входит это стандарт уже

    Это ты к чему, не понял. Попробуй прожевать и сказать снова, может, пойму :)

    >настоящему индейцу западло ходить тропами бледнолицых, да, Балансер? br>
    Дык, давно известно, что два миллиона леммингов не могут ошибаться :)
  •  10/19/2004, 13:15 684108 in reply to 684042

    QUOTE (Balancer @ Oct 19 2004, 07:03 )
    let create_and_fill_model () =
    let liststore = GTree.list_store cols in

    (* Append a row, and fill it with some data *)
    let append (name, year_born) =
    let row = liststore#append () in
    liststore#set ~row ~column:col_name name;
    liststore#set ~row ~column:col_year_born year_born
    in
    List.iter append [
    ("Abel", 1963);
    ("Park", 1971);
    ("Lee", 1930);
    ];

    liststore


    Ты хочешь сказать что тут меньше вероятность допустить ошибку? На Яве этот метод займёт три строки.
  •  10/19/2004, 13:23 684109 in reply to 684042

    QUOTE (Мышкин @ Oct 19 2004, 17:15 ) Ты хочешь сказать что тут меньше вероятность допустить ошибку?

    O'Caml гораздо больше ошибок отлавливает на этапе компиляции. До Haskell он, конечно, сильно не дотягивает, но зато практичен :)

    >На Яве этот метод займёт три строки.

    А где ты там метод видишь?

    Кроме того, если уж сравнивать компактность GUI-конструкций, то Java в полной попе в сравнении с тем же Tcl/Tk :)

    Кстати, раз уж ты так любишь реальные примеры, то не могу не пройти мимо одного из них в случае Tcl/Tk - http://tkabber.jabber.ru :)

    Кстати, раз уж около Jabber'а коснулся, сразу ещё ассоциация с "немейнстримными" языками - один из самых продвинутых и надёжных jabber-серверв написан на Erlang - http://ejabberd.jabberstudio.org/

    В общем, не стоит в качестве оружия невежество использовать. Ни своё, ни чужое :)
  •  10/19/2004, 16:08 684110 in reply to 684042

    QUOTE
    O'Caml гораздо больше ошибок отлавливает на этапе компиляции. До Haskell он, конечно, сильно не дотягивает, но зато практичен :)


    Хорошо, давай так, приведи мне пример ошибки, которая javac не отловит. Кроме expections естественно.
    QUOTE
    А где ты там метод видишь?


    Ну я так понял что это функция с именем "let append (name, year_born) " и двуми входными переменными name и year_born? Нет?
    QUOTE
    Кроме того, если уж сравнивать компактность GUI-конструкций, то Java в полной попе в сравнении с тем же Tcl/Tk :)


    Это ещё чего за зверь? То что я нашёл по той ссылке что мне дал ничем не компактнее Java Swing,

    O'Calm:
    QUOTE
    class demo () =
      let window =
        GWindow.window ~title:"Demo window" ~allow_shrink:true ~allow_grow:true
          ~auto_shrink:true ~modal:true ()
      in
      let vbox_main = GPack.vbox ~homogeneous:false ~packing:window#add () in
      let menubar =
        GMenu.menu_bar ~packing:(vbox_main#pack ~expand:false ~fill:true) ()
      in
      let itemFile = GMenu.menu_item ~label:"File" ~packing:menubar#add () in
      let menuFile = GMenu.menu ~packing:itemFile#set_submenu () in
      let itemQuit = GMenu.menu_item ~label:"Quit" ~packing:menuFile#add () in
      let itemEdit = GMenu.menu_item ~label:"Edit" ~packing:menubar#add () in
      let accel_group = GtkData.AccelGroup.create () in
      let _ = menuFile#set_accel_group accel_group in
      let wframe =
        GBin.frame ~border_width:2 ~label:"Foo" ~shadow_type:`OUT
          ~packing:(vbox_main#pack ~expand:true ~fill:true ~padding:2) ()
      in
      let wtext =
        GEdit.text ~editable:true ~word_wrap:true ~line_wrap:true
          ~packing:wframe#add ()
      in
      let wb_ok =
        GButton.button ~border_width:1
          ~packing:(vbox_main#pack ~expand:false ~fill:true ~padding:2) ()
      in
      let wl_ok =
        GMisc.label ~text:"Ok" ~justify:`LEFT ~line_wrap:true ~packing:wb_ok#add
          ()
      in
      object
        val window = window
        val vbox_main = vbox_main
        val menubar = menubar
        val accel_group = accel_group
        val itemFile = itemFile
        val menuFile = menuFile
        val itemQuit = itemQuit
        val itemEdit = itemEdit
        val wframe = wframe
        val wtext = wtext
        val wb_ok = wb_ok
        val wl_ok = wl_ok
        method window = window
        method vbox_main = vbox_main
        method menubar = menubar
        method accel_group = accel_group
        method itemFile = itemFile
        method menuFile = menuFile
        method itemQuit = itemQuit
        method itemEdit = itemEdit
        method wframe = wframe
        method wtext = wtext
        method wb_ok = wb_ok
        method wl_ok = wl_ok
      end;;




    JAVA:
    QUOTE
    public class Form1 extends System.Windows.Forms.Form
    {
    private System.Windows.Forms.MainMenu mainMenu1;
    private System.Windows.Forms.MenuItem menuItem1;
    private System.Windows.Forms.MenuItem menuItem2;
    private System.Windows.Forms.MenuItem menuItem3;
    private System.Windows.Forms.RadioButton radioButton1;
    private System.Windows.Forms.RadioButton radioButton2;
    private System.Windows.Forms.RadioButton radioButton3;
    private System.Windows.Forms.RadioButton radioButton4;
    private System.Windows.Forms.TextBox textBox1;
    private System.ComponentModel.Container components = null;

    public Form1()
    {
      InitializeComponent();
    }
    protected void Dispose(boolean disposing)
    {
      if (disposing)
      {
      if (components != null)
      {
        components.Dispose();
      }
      }
      super.Dispose(disposing);
    }
    private void InitializeComponent()
    {
      this.mainMenu1 = new System.Windows.Forms.MainMenu();
      this.menuItem1 = new System.Windows.Forms.MenuItem();
      this.menuItem2 = new System.Windows.Forms.MenuItem();
      this.menuItem3 = new System.Windows.Forms.MenuItem();
      this.radioButton1 = new System.Windows.Forms.RadioButton();
      this.radioButton2 = new System.Windows.Forms.RadioButton();
      this.radioButton3 = new System.Windows.Forms.RadioButton();
      this.radioButton4 = new System.Windows.Forms.RadioButton();
      this.textBox1 = new System.Windows.Forms.TextBox();
      this.SuspendLayout();
      this.mainMenu1.get_MenuItems().AddRange(new System.Windows.Forms.MenuItem[]
      {
        this.menuItem1,
        this.menuItem2,
        this.menuItem3}
      );
      this.menuItem1.set_Text("File");
      this.menuItem2.set_Text("File2");
      this.menuItem3.set_Text("File3");
      this.radioButton1.set_Location(new System.Drawing.Point(24, 104));
      this.radioButton1.set_Name("radioButton1");
      this.radioButton1.set_Text("radioButton1");
      this.radioButton2.set_Location(new System.Drawing.Point(24, 128));
      this.radioButton2.set_Name("radioButton2");
      this.radioButton2.set_Text("radioButton2");
      this.radioButton3.set_Location(new System.Drawing.Point(24, 168));
      this.radioButton3.set_Name("radioButton3");
      this.radioButton3.set_Text("radioButton3");
      this.radioButton4.set_Location(new System.Drawing.Point(24, 200));
      this.radioButton4.set_Name("radioButton4");
      this.radioButton4.set_Text("radioButton4");
      this.textBox1.set_Location(new System.Drawing.Point(32, 48));
      this.textBox1.set_Name("textBox1");
      this.textBox1.set_Size(new System.Drawing.Size(72, 20));
      this.textBox1.set_Text("textBox1");
      this.set_AutoScaleBaseSize(new System.Drawing.Size(5, 13));
      this.set_ClientSize(new System.Drawing.Size(292, 266));
      this.get_Controls().Add(this.textBox1);
      this.get_Controls().Add(this.radioButton4);
      this.get_Controls().Add(this.radioButton3);
      this.get_Controls().Add(this.radioButton2);
      this.get_Controls().Add(this.radioButton1);
      this.set_Menu(this.mainMenu1);
      this.set_Name("Form1");
      this.set_Text("Form1");
      this.ResumeLayout(false);
    }
    public static void main(String[] args)
    {
      Application.Run(new Form1());
    }
    }

  •  10/19/2004, 20:40 684111 in reply to 684042

    QUOTE (Balancer @ Oct 19 2004, 17:23 ) Кстати, раз уж ты так любишь реальные примеры, то не могу не пройти мимо одного из них в случае Tcl/Tk - http://tkabber.jabber.ru :)

    Если я захочу избавиться от свободной памяти, я это сделаю другими способами.
    QUOTE Кстати, раз уж около Jabber'а коснулся, сразу ещё ассоциация с "немейнстримными" языками - один из самых продвинутых и надёжных jabber-серверв написан на Erlang - http://ejabberd.jabberstudio.org/

    Насчет продвинутости и надежности это не совсем так. Кроме того, он не держит даже десятка тысяч соединений.
  •  10/20/2004, 5:58 684112 in reply to 684042

    QUOTE (pax @ Oct 19 2004, 23:40 ) Насчет продвинутости и надежности это не совсем так. Кроме того, он не держит даже десятка тысяч соединений.

    Ребята несколько увлеклись возможностями erlang-а...
    (сделали каждое соединение - процессом... это они IMHO зря, хотя процессы в erlang-е хороши).
  •  10/20/2004, 8:33 684113 in reply to 684042

    На мой взгляд, больше шансов стать программистом или математиком у логика. А что касается конкретного языка, то тут, мне кажется, влияет не ТИМ, а привычка. Я, например, в разное время писал и на Delphi, и на Perl, и даже не Asm'е. :-)
  •  10/20/2004, 18:06 684114 in reply to 684042

    QUOTE (Duncan @ Oct 20 2004, 12:33 )На мой взгляд, больше шансов стать программистом или математиком у логика.
    абсолютно согласен.QUOTE (Duncan @ Oct 20 2004, 12:33 )А что касается конкретного языка, то тут, мне кажется, влияет не ТИМ, а привычка.
    самый лучший язык - тот который программист лучше всего знает br>
    если серьезно, то самый лучший (гибкий, мощный) язык - Lisp,
    или модный сейчас его диалект Scheme,
    но в крупных серьезных проектах его применять я пока не рисковал
    самый практичный для меня - Java
    самый лаконичный - perl
  •  10/20/2004, 18:08 684115 in reply to 684042

    QUOTE (Мышкин @ Oct 19 2004, 20:08 ) Хорошо, давай так, приведи мне пример ошибки, которая javac не отловит.

    Да любая работа с со списками, HashTable и т.п. -
    все хранится как Object без какой-либо проверки типа компилятором.

    к счастью, в JDK5 эта проблема решена,
    там появились параметрические типы
  •  10/20/2004, 19:04 684116 in reply to 684042

    QUOTE (alex14san @ Oct 20 2004, 12:08 ) все хранится как Object без какой-либо проверки типа компилятором.


    Плохо это или хорошо? С одной стороны конечно run-time error вылезет как ты и сказал, с другой стороны inheritance тут работает наглядно и чётко (при условии конечно что знаешь какой тип лежал в листе с самого начала)
Страница 5 из 7 [Всего 104 записей]   « Первая ... « 3 4 5 6 7 »
Показать как RSS feed в формате XML


visits

Community Server