Pull to refresh

Comments 54

Чем только люди не занимаются, вместо того чтобы нормальную консоль сделать :-))
>>вместо того чтобы нормальную консоль сделать :-))
Чем она «ненормальна»?
Наверно имелось ввиду сделать один нормальный shell и не плодить сущностей.
Вот, хоть один здравомыслящий человек! :-)
PowerShell вполне симпатичная штука. Но вот консоль как эмулятор терминала всё так же убог. И если в том же линукс — не нравится один эмулятор, используем другой, то в винде так просто не заменить. Тот же Console2 сделан через жуткие костыли. Из-за чего периодечески выдает жуткие баги. Чем убог эмулятор терминала в винде: отсутствует поддержка unicode, простым образом не меняются размеры буфера (Console2 частично решает), нет вкладок для разных процессов (в линукс идеология: программа эмулятор запускает процессы и рисует их текстовый вывод, в винде: программа, которой нужна консоль, создаёт своё окно консоли) — частично обходится Console2, но тоже криво. Далее недостаток cmd и powershell — в них нет истории, которая бы сохранялась между сеансами. Далее недостаток инфраструктуры — нет нормальных консольных инструментов. Поверьте, установка MinGW/MSYS (даже не cygwin) и Console2 намного упрожают жизнь, когда появляются bash, xargs, grep, sed, etc. Почему не сделать аналогичного в винде? Невозможно? Бред, возможно. Немного поломать совместимость в области консоли — это так страшно (с учётом, что то, что есть в чистом виде почти никто не использует)? Хотя можно попробоавть пойти любимым путём MS — старый интерфейс пусть работает как есть, но создать новый. Может прокатит.
Можно запустить PS в другом эмуляторе терминала. Как вариант есть еще очень симпатичная штучка PoshConsole poshconsole.codeplex.com/

>>The first rich, graphical, interactive console.
>>The only PowerShell console with Quake Mode!
>>Multi-line input prompt inline the way consoles should be.
>>Global hotkeys can be tied to ScriptBlocks
>>Rich XAML templates for Out-UIElement output formatting
>>Each sequence of prompt, command, output are paired into a logical unit — a RichTextBox Paragraph.
>>Triple-Click to select a whole sequence.
>>Boatloads of configurable settings are available in the $Host.PrivateData.Settings variable.
>>Autohide upon losing focus.
>>Animation on hiding.
>>Customizable colors (optionally outside the 16 console colors) for each output type, and for each console color
>>Integrated graphical Progress display…

Quake mode особенно доставляет :D
При желании можно написать свою мини-IDE с блекджеком и шлюхами, но смысла в этом я вообще не вижу :)
мне бы IDE нормальный. poewrgui падает и вешается на 5-7 запуске 10 строчного скрипта…
Console2 это и есть другой эмулятор терминала. Без него вообще страшно. Но и он не решает все проблемы. Вроде я об этом и написал.

Где Юникод? 2012 год на дворе, второе десятилетие 21 века, 21 год как предложен Юникод.

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

Личная проблема PS — отсутствие истории (неужели так сложно?).
>>Где Юникод? 2012 год на дворе, второе десятилетие 21 века, 21 год как предложен Юникод.
Это проблема эмуляторов терминала. В ISE Юникод выводится отлично.
Я и говорил о эмуляторе. Недостаток PS — только история, в остальном очень симпатичная вещь.
У «нормальной» консоли уже появились объектные операции?
Объекты — это всё баловство. Отомрет. Как и мертворожденные редакторы кода, в которых программы надо мышкой собирать из узлов.

Текст, только текст. Простота и универсальность.
Аргументы кончились?
Да ладно тебе… «аргументы»
А в чем был смысл твоего поста?
Баловство? Ну да, 640 кб тоже хватит всем.
История нас рассудит :-)
Уже рассудила. Не хватит. Так же как и plain text недостаточен для нормальной работы в современных условиях.

ЗЫ базы данных тоже не признаете? :)
Расскажешь мне, когда виндовс с этим вашим муляжем консоли будет доминировать на рынке серверов :-)
Кажется, на брудершафт мы еще не пили.
Этот «муляж консоли» за счет объектных операций гораздо более функционален линуховой.
Например то, что объектом может быть все что угодно. Набор метаданных, медиа и вообще.

Кто-то и lynx'ом сёрфит, я ж не против, но как-то полноценным браузером удобнее.
Это для майкрософта нет. А для тех кто ставит линукс — вполне себе есть. Сэкономил, значит заработал :-)
зачем тогда существуют платные линуксы? :-)
там чаще всего поддержка платная.
Когда придумывали UNIX компьютеры оперировали только с текстом и числами, который в текст и обратно легко можно было перевести. Поэтому идея что текст — уневерсальный протол связи между маленкими утилитами, которые можно собирать в цепочки под задачу, была естественна и полезна.
Но сейчас в большинстве случаев компьютеры оперируют бинарными потоками, мультимедийными данными, снабженными метаинформацией еще к тому-же.
Сегодня «консоль» должна объектный интерфейс, чтобы уметь разбирать и конвертировать между собою великое множество форматов данных средствами установленного на машине программного обеспечения.
> в большинстве случаев компьютеры оперируют бинарными потоками, мультимедийными данными, снабженными метаинформацией еще к тому-же.

Пруфлинк?
Видео, фотки, музыка. Файлы проектов для всевозможных программ редактирования всего этого добра.
Когда дело доходит то мультимедия юниксовая консоль перестает быть такой уж удобной. Например кодирование видео с помощью ffmpeg или gstreamer. Все скрыто в одной программе черном ящике. Пользователь должен запомнить или записать последовательность нужных ключей. Не всегда можно проследить за процессо и остановить не дожидаясь конца. А вот если бы поток видео\аудио можно было гнать по консоли как текст, было бы намного удобнее и понятнее.
А что, в павершелле можно видео гонять?
Не совсем понимаю, вот остановить q, есть man с помощью. Процесс кодирования показывает. Что то еще? Показывать видео в процессе кодирования? Мой нетбук кодирует 1 кадр за 2 секунды + видео будет подгружать и будет 1 кадр в 5 секунд. Думаю если плодить сложности то можно повысить подтребление.
А насчет ключей. В гуе обычно выбирается мышкой или параметры из профилей или вручную забивается битрейт и т.д. как минимум надо знать что означает каждое поле. А если вывести ВСЕ поля (например параметры x264) то интерфейс будет перегружен. В шеле же мы выбрали и все.
В консоли нужен только текст, т.к. человек может ввести информацию или камерой или голосом или с клавиатуры. Только вот голосом и с камеры требует высоконагруженной обработки. Да и все равно для взаимодействия используется язык состоящий из символов. В итоге работа Компьютер-Пользователь выходит в текст. Даже в граф. интерфейсе мы имеем тот же текст на вывод, но меньше на ввод.
Ну представте себе, что у вас есть Windows Movie Maker, у которого есть хороший стиль титров. Титры хотите наложить на склеенные между собой m2ts файлы с видеокамеры. Музыку вы хотите взять из клипа любимого артиста. И застримить по DLNA на телевизор.
Это вполне можно сделать средствами консоли на Linux. Набрать нужных утилит, гонять данные между ними сохраняя результат во временные папки. Утилитам передавать только пути и параметры. Можно написать bash скрипт который это будет делать.
Но представьте, что формат видео такой же нативный как и текст. Тогда можно просто написать чтото вроде этого
WMP.dlna.streem((«C:/clip1»+«C:/clip2»+«C:/clip3»).addTitle(«lala»).addAudio(«lolo»))
или лучше даже нарисовать граф обработки в какой нибудь визуальной среде. А граф этот можно сохранить и вызывать потом как программу.

>нужен только текст, потому что человек может…
Почему только? Нужен безусловно текст. Но ваш аргумент никак не обосновывает почему не должно быть ничего кроме текста.

UNIX'ы написаны на си в нем есть естественный механизм передачи параметров через текст. Если бы сегодня кто-то написал систему на управляемом языке (С# или Java) (Фантом, Singularity), я думаю консоль была бы в этой системе именно объектной. А как иначе, это же естественно следует из архитектуры.
То что вы написали — интересно. А есть реализации подобного подхода под *nix?
Это чисто мои фантазии =) может и есть что.
Видел какие-то наработки, которые, например, аудиофайл гонят на stdout распарсенный на текстовый формат типа xml/yaml, соответственно обратные преобразователи, и фильтры различные, и редакторы типа sed. То есть поменять титлы в mp3/ogg или битрейт, или конвертировать из mp3 в ogg можно через обычный пайп типа

catmp3 music.mp3 | audiofilter --reverb | audioconvert -t ogg >reverb_music.ogg

Но как-то мне это нежизнеспособно показалось, чисто для wow-эффекта «а ещё в консоли можно так». Хотя вроде собирались переписывать stdin, stdout, stderr и стандартные команды, чтоб они по разному работали с разными mimetypes, передаваемые первым параметром в потоке. В общем, чтобы cat music.mp3 музыку играло, cat video.mp4 кино казало и т. п.
Может в деталях ошибся, но общий принцип такой предлагался уже и, кажется, на хабре обсуждался.
Простите. но нетбук не очень предназначен для кодирования видео…
Только на нем я могу оставить кодирование на ночь, да и киношки смотрю на нем же. Тут такая штука есть — если перекодировать из x264 в mpeg4 с некоторым повышением битрейта то качество теряется не сильно. но при этом работает ускорение mpeg4 и видео идет без глюков. Даже гонится 1080p на 10 мбит битрейта.
>> мертворожденные редакторы кода, в которых программы надо мышкой собирать из узлов

Не нравится мышка — собирайте пальцами…
Зачем нормальной консоли объектные операции? Для этого уже есть питон. Что за странная привычка лепить все в одну кучу
затем, чтобы конвеер команд работал не через парсинг результирующих строк, а единообразно через объекты, так и быстрее и мощнее
Шелл нужен для организации достаточно простой последовательности выполнения программ. Вы много видели программ, которые выдают объекты на stdout? Я не очень. А в таком виде — это очередной язык программирования, а не стандартизированное простое промышленное расширение для автоматизации
в PowerShell другая политика: вместо массы разрозненных утилит набор командлетов, которые делают все что надо в объектном виде. Надо что-то расширить и сделать свое — пишите командлет. Этих командлетов уже тысячи и число постоянно растет.
Заметьте, что в данном треде не замечено ни одного восторженного или умеренно-радостного комментария, типа «Урраа, вот уж теперь то заживем!»

Что как бы символизирует :-)
Просто на Windows консоль не особо нужна. Для всего написано уже достаточно инструментов. Это пока для энтузиастов.
Вы, видимо, плохо знаете хотя бы AD. Когда AD распространяется на десятки офисов, а некоторые задачи надо выполнить на всех серверах вот-прям-щас, PS спасает.
«теперь-то заживем!» говорят, когда раньше было плохо, и стало хорошо.
PS изначально годный продукт, поэтому улучшения воспринимаются с меньшим пылом.

зы. ваш баттхёрт в треде заметен невооруженным глазом.
Что угодно можно «гонять» все что инкапсулировано в объект.
Для тех кто в танке сообщаем: PowerShell 3 будет официально выпущен вместе с Windows 8

Но работать он будет, надеюсь, не только в Win8 и младших системах??
не только в Win8, НО и в младших системах??
Sign up to leave a comment.

Articles