Re[3]: Может ли нравиться NodeJS?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 14.04.17 06:57
Оценка: +2
Здравствуйте, StandAlone, Вы писали:

SA>Здравствуйте, gandjustas, Вы писали:


G>>Не переживай, для таких как ты есть typescript.


SA>"Слышь, Бивис, а как во всех нормальных языках сделано? Сперва пишется тип, а потом переменная? Слева направо, тут же не арабы, да? Гыгыгы, а мы сделаем наоборот! NotInventedHere!"


"Наоборот" вообще-то не менее почтенно (Pascal со всеми потомками вплоть до Ada), используется массово сейчас (новые языки вроде Swift, Go...) и имеет ряд существенных преимуществ — например, вместо сишных typedef void (*func1_t)(int) начинают писаться конструкции, которые можно понять без выворачивания наизнанку.
Так что переучивайтесь.
The God is real, unless declared integer.
Re[4]: Может ли нравиться NodeJS?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 14.04.17 06:59
Оценка: -1 :)
Здравствуйте, elmal, Вы писали:

E>И вообще. Я хренею с современного джаваскрипта. Почему то в современных реалиях даже для сеньер фронтэнд разработчиков на нем невозможно сделать то, что без проблем делалось 10 лет назад на том же джаваскрипте.

[...]

Плач замечательный, но это явно не проблема языка.
The God is real, unless declared integer.
Re[5]: Может ли нравиться NodeJS?
От: hrensgory Россия  
Дата: 14.04.17 08:33
Оценка:
14.04.2017 9:59, netch80 пишет:
> Здравствуйте, elmal, Вы писали:
>
> E>И вообще. Я хренею с современного джаваскрипта. Почему то в
> современных реалиях даже для сеньер фронтэнд разработчиков на нем
> невозможно сделать то, что без проблем делалось 10 лет назад на том же
> джаваскрипте.
> [...]
>
> Плач замечательный, но это явно не проблема языка.

Но это явно проблема. Реальная трудоемкость (человеко/часов) разработки
обычного Web-интерфейса CRUD и т.п. после того, как генерация DHTML
страниц на сервере была объявлена моветоном, возросла в РАЗЫ. И
обусловлено это в первую очередь именно калечностью языка, стандартно
понимаемого браузерами (т.е. JS). Именно из-за этого возникла
совершенно, извините за выражение, но по другому не скажешь — мудацкая
система с "компиляцией" ("транспиляцией") кода, исполняемого в браузере
из чего-нибудь, на чём хоть как-то можно писать большие проекты, весь
этот grunt, webpack и прочие nodejs костыли.

Да, при чётком разделении фронта и бэка страницы выходят более
красивыми/динамичными, и есть другие преимущества. Но стоимость этой
красоты в реале достаточно высока.

--
WBR,
Serge.
Posted via RSDN NNTP Server 2.1 beta
Re[3]: Может ли нравиться NodeJS?
От: Mr.Delphist  
Дата: 14.04.17 09:30
Оценка:
Здравствуйте, StandAlone, Вы писали:

SA>Здравствуйте, John1979, Вы писали:


J>>Я перешел с C++ на ноду очень легко. Если отбросить религиозные убеждения, то ничего страшного в жаваскрипте нет.


SA>Как и в Quick Basic. Хотя, пожалуй, я несправедлив к бейсику.


Ви таки не поверите, но был у меня один проект с Quick Basic — писал на асме модуль для ускорения работы с VESA-графикой.
Re[3]: Может ли нравиться NodeJS?
От: m2l  
Дата: 14.04.17 18:03
Оценка: -1 :)
Здравствуйте, StandAlone, Вы писали:

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

HolyWar это конечно весело, но тут такое дело, я процентов 80 кода пишу на C/C++/C#. Да, в некоторых проектах есть фронтенд HTML/JS, но не более.

SA>Опишите, пожалуйста, как бы Вы решали с использованием JavaScript одну из типичных задач программирования. Всем, регулярно читающим этот раздел, они конечно же известны, но я все же напомню:

SA>1) Напишите реализацию quicksort
SA>2) Обойдите дерево в ширину.
Я может чего-то не знаю в JS, в силу того, что это не мой основной язык, но всё же, где тут подводный камень? Просто ХЗ, но вроде во всех императивных языках примерно одно и тоже. Синтаксические конструкции и символы операторов только немного разные вроде.... Такчто, если тебе сильно хочеться, давай свои реализации, я попробую их как-нибудь "оджаваскриптить"
SA>3) Реализуйте паттер Visitor.
В JS и ООП то довольно сильно сбоку, вот так бросаться на амбразуру с паттерном Visitor немного не дальновидно... Как-бы голову надо включать и использовать к задачам подходящие инструменты и паттерны. И у меня встречный вопрос — а что был реально рабочий код существующий программы, где у тебя этот паттерн позволил уменьшить её структурную сложность? На каком языке, что за проект? Сколько таких прицедентов было, каждый день пишешь?
SA>4) Реализуйте иерархию слоя доступа к данным с элементами AOP, а именно наложением инвариантов посредством атрибутов.
В нормальных проектах этим занимаеться C#/Java на бэкенде. Я вот так даже и представить себе не могу куда между DOM/AJAX можно приткнуть такую хрень и нафига. Что она там делать будет?
SA>...
SA>6) Хорошо, напишите хоть что-нибудь размером хотя бы с ObservableCollection. И не забудьте прикрыть локтями ребра...
Попробуй написать ObservableCollection на C++ без сторонних библиотек и кроссплатформенно. Причём в JS тьма либ/фрейморков её заменяющих, те же angular/React/тысячи-этой-новомодной-хрени, а вот в плюсах вроде особо нет. Так что сделаешь общественно полезное дело.

SA>Ждем-с

Было забавно, но не думаю, что будет конструктивно.
Re[4]: Может ли нравиться NodeJS?
От: Kesular  
Дата: 14.04.17 19:53
Оценка:
Здравствуйте, elmal, Вы писали:

E>И вообще. Я хренею с современного джаваскрипта. Почему то в современных реалиях даже для сеньер фронтэнд разработчиков на нем невозможно сделать то, что без проблем делалось 10 лет назад на том же джаваскрипте.


Справедливости ради, десктоп этот рак тоже не обошел стороной. Ну или мне в последнее время с проектами не везет. То, что раньше делалось силами одного кодера за неделю, сейчас делается тремя за две, и чтобы использовалось не меньше 20 сторонних пакетов. Иначе все скажут, что не круто.
Впрочем, в вебе реально всё еще хуже
Re[3]: Может ли нравиться NodeJS?
От: mgu  
Дата: 15.04.17 03:06
Оценка:
Здравствуйте, Vetal_ca, Вы писали:

mgu>>2. Зачем на эту должность нанимать вас, когда нудистов (а тем более джаваскриптистов) вокруг, как говна за баней?


V_>Сказали что просто с JS (JQuery и прочий frontend) на серверную часть не берут. Нужен опыт в распределенном бэкенде, пусть и без JS. Это паралеллизация, pipelining, sharding, AMQP и прочее


Да, тогда резонно, а синтаксис языка -- это мелочи.
Re[6]: Может ли нравиться NodeJS?
От: mgu  
Дата: 15.04.17 03:28
Оценка: +1
Здравствуйте, elmal, Вы писали:

E>Это понятно. Проблема в том, что типичный фронтэнд разработчик отсортировать что либо не в состоянии. Если готовый контрол не имеет функции сортировки, то все, задача нерешаемая.


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

E>К сожалению ни черта. Кто хочет 40 тысяч, те ранее работали курьерами и в макдональдсе, а книжку прочитать еще не успели, да и книжка эта была вида пишем hello world за 24 часа. Да и если у них диплом какого либо КтИУ ИТМО — тоже самое, про такую структуру данных, как дерево, они какого то черта не слышали. И к тому же я вопрос формулирую не что такое хешмап, а по другому. Например с бэкэнда пришла информация о пользователях в виде название организации, инн, выручка. Могут быть дубликаты по названию и инн. Ибо задача достаточно часто реально встречается на практике. Рассказать (не написать на бумажке!!!!) как они будут эти дубликаты отсеивать. Вот реально нерешаемая задача на фронтэнде, не в состоянии ее решить 90 процентов!


Какой кошмар! Понятно, что по-хорошему нужно устранять причину на сервере, но реально до тех разработчиков не достучаться: они целыми днями интервьюируют кандидатов с вопросами из книги "hello world за 24 часа".
Re[2]: Может ли нравиться NodeJS?
От: Au Австралия  
Дата: 15.04.17 03:33
Оценка:
Здравствуйте, AndyCyp, Вы писали:

AC>использовать ТайпСкрипт, траспайлить его в ЕС5, и будет тебе счастье


Зачем в ES5? Можно и в ES6 с CommonJs модулями.
Re[6]: Может ли нравиться NodeJS?
От: mgu  
Дата: 15.04.17 03:37
Оценка:
Здравствуйте, hrensgory, Вы писали:

H>Но это явно проблема. Реальная трудоемкость (человеко/часов) разработки

H>обычного Web-интерфейса CRUD и т.п. после того, как генерация DHTML
H>страниц на сервере была объявлена моветоном, возросла в РАЗЫ.

Ну и объём передаваемых данных возрос не по-детски.

H>И обусловлено это в первую очередь именно калечностью языка, стандартно

H>понимаемого браузерами (т.е. JS).

Проблема не в языке, а в его применятелях не по назначению. Это всё равно как на легковой машине перевозить холодильник и хаять её низкую грузоподъёмность.
Re[5]: Может ли нравиться NodeJS?
От: mgu  
Дата: 15.04.17 03:51
Оценка: +2 :)
Здравствуйте, Kesular, Вы писали:

K>Справедливости ради, десктоп этот рак тоже не обошел стороной. Ну или мне в последнее время с проектами не везет. То, что раньше делалось силами одного кодера за неделю, сейчас делается тремя за две, и чтобы использовалось не меньше 20 сторонних пакетов. Иначе все скажут, что не круто.


Для троих кодировщиков уже требуются ведущий, менеджер и политрук срам-мастер. Так что получается уже 6 голов.

K>Впрочем, в вебе реально всё еще хуже


Хе-хе, в Джаве раздел с include скоро по количеству строк превысит собственно код.
Re[6]: Может ли нравиться NodeJS?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 15.04.17 03:58
Оценка:
Здравствуйте, mgu, Вы писали:

mgu>Для троих кодировщиков уже требуются ведущий, менеджер и политрук срам-мастер. Так что получается уже 6 голов.


Вот потому и плодятся конторы, в которых к горизонтальной координации просто принуждают.
Зато если кто вработался в это — можно ограничивать одним начальником любого вида на 10-30 человек.

mgu>Хе-хе, в Джаве раздел с include скоро по количеству строк превысит собственно код.


Инклуды чего?
The God is real, unless declared integer.
Re[7]: Может ли нравиться NodeJS?
От: mgu  
Дата: 15.04.17 04:46
Оценка: 13 (2) :))) :))) :))
Здравствуйте, netch80, Вы писали:

mgu>>Хе-хе, в Джаве раздел с include скоро по количеству строк превысит собственно код.


N>Инклуды чего?


Библиотек всяких. Современная программа на Джаве выглядит примерно так:

package paper.bag;

import java.int;
import javax.math.operators.*;
import javay.util.semicolon;
import java.exceptions.vomiting;
import apache.commons.*;
import google.guano.*;
import java.annotations.*;

@NotNull
@NotImagenery
@Userializable
@Defecated
@Reject
/**
* Multiplies 2 by 2. The product of 3 by 3 is upcoming in the next marathon.
*
* @autor: Strudomprassal V.
*/
pubic int TwoByTwo() throws Sauerkraut, Cucumbers, Herring {
  @SuppressWarnings("unchecked")
  return (int)((2) * (2));
}
Re: Может ли нравиться NodeJS?
От: Au Австралия  
Дата: 15.04.17 04:50
Оценка: 5 (2) -1
5 лет пишу на node.js, до этого больше 8 лет писал C# и пару лет на Java. Node нравится, JavaScript/TypeScript нравится. Зная довольно глубоко как язык так и экосистему, я искренне не понимаю глубины ненависти к JavaScript со стороны некоторой части разработчиков.

> Будет ли это плюсом для мозгов и новым взглядом на веши? Или только притуплением, болью и мучением?


Для меня было "плюсом для мозгов и новым взглядом на вещи". Если изучения нового в целом боли и мучений не вызывает, то тут думаю проблем не будет.
Re[4]: Может ли нравиться NodeJS?
От: Au Австралия  
Дата: 15.04.17 05:45
Оценка: 1 (1) :)
LB>Имхо JS после типизированных языков это АДЪ.

А у меня противоположный опыт. Ключевой момент по моему мнению, это не ждать от JavaScript того чего там нет и не было, того что хорошо работает в типизированных языках, по той причине что они типизированы. Нужно просто перестроиться и использовать сильные стороны отсутствия строгой типизации.
Re[4]: Может ли нравиться NodeJS?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 15.04.17 13:10
Оценка:
Здравствуйте, Lazy Bear, Вы писали:

LB>Здравствуйте, Vetal_ca, Вы писали:


V_>>>>Будет ли это плюсом для мозгов и новым взглядом на веши? Или только притуплением, болью и мучением?

G>>>Однозначно.
LB>Имхо JS после типизированных языков это АДЪ.
Есть TypeScript — вполне себе типизированный javascript.
Re[3]: Может ли нравиться NodeJS?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 15.04.17 13:42
Оценка: :)
Здравствуйте, StandAlone, Вы писали:


SA>Опишите, пожалуйста, как бы Вы решали с использованием JavaScript одну из типичных задач программирования. Всем, регулярно читающим этот раздел, они конечно же известны, но я все же напомню:

SA>1) Напишите реализацию quicksort
  думаешь там что-то удивительное будет?
/*
 * Алгоритм быстрой сортировки
 *
 * @param data Array
 * @param compare function(a, b) - возвращает 0 если a=b, -1 если a<b и 1 если a>b (необязательная)
 * @param change function(a, i, j) - меняет местами i-й и j-й элементы массива а (необязательная)
 *
 */
function qsort(data, compare, change) {
    var a = data,
        f_compare = compare,
        f_change  = change;

    if (!a instanceof Array) { // Данные не являются массивом
        return undefined;
    };

    if (f_compare == undefined) { // Будем использовать простую функцию (для чисел)
        f_compare = function(a, b) {return ((a == b) ? 0 : ((a > b) ? 1 : -1));};
    };

    if (f_change == undefined) { // Будем использовать простую смены (для чисел)
        f_change = function(a, i, j) {var c = a[i];a[i] = a[j];a[j] = c;};
    };

    var qs = function (l, r)  {
        var i = l,
            j = r,
            x = a[l+r>>1];
            //x = a[Math.floor(Math.random()*(r-l+1))+l];
            // x = a[l]; // Если нет желания использовать объект Math
 
        while(i <= j) {
            while(f_compare(a[i], x) == -1) {i++;}
            while(f_compare(a[j], x) == 1) {j--;}
            if(i <= j) {f_change(a, i++, j--);}
        };
        if(l < j) {qs(l, j);}
        if(i < r) {qs(i, r);}
    }; 
    qs(0, a.length-1);

};

https://gist.github.com/anagorsky/ebc333d1aa292fa47fa6


SA>2) Обойдите дерево в ширину.


  Также, как в любом другом языке
//BFS
Tree.prototype.traverse = function (callback) {
  var queue=[this];
  var n;

  while(queue.length>0) {

    n = queue.shift();
    callback(n.value);

    if (!n.children) {
      continue;
    }

    for (var i = 0; i< n.children.length; i++) {
       queue.push(n.children[i]);
    }
  }
};


SA>3) Реализуйте паттер Visitor.

Vistor в JS не нужен

  но если очень хочется
// see http://d.hatena.ne.jp/ashigeru/20090113/1231855642



var calc = {
  add: function (node) {
    return visit(this, node.l) + visit(this, node.r);
  },
  sub: function (node) {
    return visit(this, node.l) - visit(this, node.r);
  },
  val: function (node) {
    return node.val;
  }
};



var dump = {
  add: function (node) {
    return visit(this, node.l) + ' + ' + visit(this, node.r);
  },
  sub: function (node) {
    return visit(this, node.l) + ' - '  +  visit(this, node.r);
  },
  val: function (node) {
    return String(node.val);
  }
};

var node = {tag: 'add',
  l: {tag: 'val', val: 2},
  r: {tag: 'sub',
    l: {tag: 'val', val: 3},
    r: {tag: 'val', val: 1}
  }
};

function visit(visitor, node) {
  return visitor[node.tag].call(visitor, node);
}

console.log(visit(calc, node));
console.log(visit(dump, node));

https://gist.github.com/nakamura-to/2144314

Причем весь "паттерн" в одной функции visit


SA>4) Реализуйте иерархию слоя доступа к данным с элементами AOP, а именно наложением инвариантов посредством атрибутов.

Мы все еще про "одну из типичных задач программирования" ? На других языках подобного извращения в реальных проектах не встречал.

SA>6) Хорошо, напишите хоть что-нибудь размером хотя бы с ObservableCollection. И не забудьте прикрыть локтями ребра...

Вот пример https://github.com/knockout/knockout/tree/master/src/subscribables
Много кода, но не смертельно.

Но лучше посмотри как устроен Angular и Angular2. Там two-way databinding работает с обычными js-объектами и там не сильно нужны приседания с Observable_что_то_там

Вообще в JS не принято много писать. Обычно все что надо можно найти в npm\bower\тупо в интернетах.
Re[3]: Может ли нравиться NodeJS?
От: AndyCyp США  
Дата: 15.04.17 16:00
Оценка:
Здравствуйте, Au, Вы писали:

Au>Здравствуйте, AndyCyp, Вы писали:


AC>>использовать ТайпСкрипт, траспайлить его в ЕС5, и будет тебе счастье


Au>Зачем в ES5? Можно и в ES6 с CommonJs модулями.


я имел ввиду клиента. JS на сервере — изврат, задачи у языка другие. Нода на сервере скорее нужна для сервер сайд рендеринга страниц.
Re[2]: Может ли нравиться NodeJS?
От: senglory  
Дата: 15.04.17 16:52
Оценка:
J>Я перешел с C++ на ноду очень легко. Если отбросить религиозные убеждения, то ничего страшного в жаваскрипте нет.

Ну да, конечно нет. Окромя вот такой хрени

конечно, ничего страшного. Случилось что-то невнятное внутри ангуляра какого или ReactJS — и все, затрахаешься понимать где у него ошибка.
Отредактировано 15.04.2017 16:53 senglory . Предыдущая версия .
Re[3]: Может ли нравиться NodeJS?
От: John1979  
Дата: 15.04.17 18:56
Оценка: 1 (1) -2
Здравствуйте, senglory, Вы писали:

S>конечно, ничего страшного. Случилось что-то невнятное внутри ангуляра какого или ReactJS — и все, затрахаешься понимать где у него ошибка.

какая связь между проблемами в твоем любимом говнофреймворке с яваскриптом в целом и node.js в частности ?

btw я немного писал на Angular 1.x, чуть больше на React и сейчас у меня шабашка на Angular 2
несмотря на то, что такую проблему, в теории, получить можно, на практике разработчик всегда знает где он накосячил.
Отредактировано 15.04.2017 18:59 John1979 . Предыдущая версия .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.