Вы можете использовать readstream и pipe для чтения файла строки за строкой, не считывая весь файл в память один раз.
var fs = require('fs'),
es = require('event-stream'),
os = require('os');
var s = fs.createReadStream(path)
.pipe(es.split())
.pipe(es.mapSync(function(line) {
//pause the readstream
s.pause();
console.log("line:", line);
s.resume();
})
.on('error', function(err) {
console.log('Error:', err);
})
.on('end', function() {
console.log('Finish reading.');
})
);
Java, C#, Ruby, Python и JavaScript являются, вероятно, большим выбором перед Вами.
Java и C# не чрезвычайно различные языки. Этой большой разницей, которую Вы найдете от C++, является управление памятью (т.е. объекты автоматически освобождены, когда на них больше не ссылаются). Вы были бы, выбрал их, если бы Вы интересовались настольными приложениями стиля, или увлечены статическим контролем типов (и Вы, вероятно, выбрали бы между ними на основе того, как Вы чувствуете к Microsoft и платформе Windows). В обоих случаях Вы найдете намного более богатые стандартные библиотеки, чем Вы привыкнете к от C++.
Python и Ruby предпринимает шаги далеко от статического контроля типов в мир, где можно звонить и метод на любом объекте (и перестать работать во времени выполнения, если это не там). Это - оба благословение (намного меньше шаблонного кода), и проклятие (компилятор не может зафиксировать те ошибки для Вас больше). Еще раз Вы найдете, что они имеют более богатые стандартные библиотеки и выше находятся на одном уровне снова, чем Java / C#. Производительность является основным крушением с Python, являющимся несколько быстрее, чем Ruby насколько я понимаю. Для выбора между ними Вы, вероятно, выбрали бы Ruby, если Вы интересны в веб-разработке для сообщества платформы Ruby on Rails, и иначе идете с Python.
JavaScript еще более отличается от C++, в котором он покончил с классами полностью. Объекты просто клонированы от других объектов и могли добавить методы и свойства им во времени выполнения. Очень гибкий, но также и очень легкий превратить в общую путаницу. JavaScript является единственным реальным выбором, если Вы интересуетесь запущенными приложениями в браузере, который действительно добивается признания как платформа. Вы найдете стандартные библиотеки доступными скорее ограниченный, если Вы не сделаете много с браузером, но существует довольно много хороших платформ, которые заполняют некоторые разрывы.
Некоторый другой интересный, хотя больше нишевых вариантов
Я сказал бы, начинают с Python. Это имеет более высокий уровень абстракции, и это преподает Вам важность расположения с отступом и создания "симпатичный" код. Не то, чтобы "симпатичный" очень важно, но это сделает будущего специалиста по обслуживанию Вашего кода намного более счастливым:)
существует много примера кода там, и если Вы в Linux существуют различные дистрибутивы там, у кого есть все (или большинство) их инструментов на основе языка. Если Вам нравится рыть в то, как управление работы операционных систем (что-то большинство программистов делает) это - хорошее начало. Прежде чем я получу провокационные сообщения, я сказал управление, не фактический материал ядра для того, что Вам главным образом нужен C, и необходимо покрыть это.
, С другой стороны, могло бы быть хорошо погрузиться в сторону C вещей, проигнорировать OO, наполняют и изучают функциональное программирование. Если Вы направляетесь вниз, что дорога я также предлагаю запуститься с основного ассемблера как одно из верхних предложенных сообщений. Возможно, HLA (Высокоуровневый блок Randall Hyde, он записал, замечательная книга, названная Искусством Программирования Ассемблера), хорошее начало. Вы будете или учиться любить управление памятью или ненавидеть его за остальную часть Вашего живого. Хороший для знания в случае, если Вы хотите запустить карьеру в программировании:)
Однако, если Вы надеетесь делать задание из программирования, Java и J2EE, производитель шальных денег, если Вы знаете то, что Вы делаете. По моему скромному мнению, это становится скучным действительно быстрый все же.
Это зависит от того, что Вы хотите сделать. Если у Вас есть некоторые определенные задачи, что Вы интересуетесь выполнением, тогда смотрят на языки, которые являются лучшими для тех типов задач. Лучший способ выучить язык состоит в том, чтобы на самом деле использовать его.
Вместо того, чтобы предлагать определенный язык, я рекомендовал бы выбрать любой язык или языки, которые предлагают следующие 4 функции:
, идея здесь состоит в том, чтобы развернуть Вашу перспективу программирования для включения понятий, которые язык C++ не предлагает Вам из поля.
Я рекомендую Python, поскольку это не только сексуальный язык, но также и очень широко используемый и легкий интегрироваться с C++ до Повышение. В Python .
, Но как Thomi было сказано, существует партия для исследования в C++, и с помощью библиотек Boost становится действительно легко разработать в.
Так как Вы уже в C++, следующий шаг должен был бы изучить.Net до управляемый С++ или справился с расширениями для C++.. это получит Вас шаг в большом мире.Net платформы.. Как только Вы понимаете платформу, делает его более удобным для изучения других.Net языков как C#, VB.Net и т.д.
Одна из областей, в которых выделяется MC ++, и на самом деле уникально в среди языков.NET, способность взять существующее неуправляемое (C++), приложение, чтобы перекомпилировать его с переключателем сброса/, иметь его генерирует MSIL и затем выполнение под CLR. Этот экстраординарный подвиг точно называют "Этими просто работами (IJW)!" Существуют некоторые ограничения, но по большей части, приложение будет просто работать. Код C++ может состоять из старомодных printf операторов, MFC, ATL, или даже обрабатывает по шаблону!
Почему бы не учиться Qt? Это - большая платформа разработки приложений, доступная на всех платформах и даже мобильных устройствах!
Хорошо я думаю, что нет никакого предопределенного маршрута в изучении языков программирования. Можно изучить следующего Ленга на основе потребностей задания, научного исследования, только для забавы, и т.д. существует много опций.
В Вас чувствуют себя комфортно в C++, можно спуститься и изучить некоторый блок. Это - темное искусство, но Вы будете радоваться при обнаружении с некоторым твердым сеансом отладки.
С точки зрения большего количества абстракции, Smalltalk является чрезвычайно забавным, чистым ООП и на 100% динамичным (отладка является приятной вещью сделать, который не находится на статических типизированных языках). Дельфин Smalltalk является хорошей реализацией для Windows, даже свободный выпуск сообщества, дает достаточно для игры с. В многоплатформенном Smalltalk VMs пойдите для Visualworks или Squeak. Visualworks чрезвычайно стабилен и идет с большим количеством документации.
Python используется сегодня во многих, многих полях. Я ничего не знаю о Python за исключением базового синтаксиса и семантики, но это требуется сегодня для многих заданий.
Java это, хорошо Java. Интересно, что Java никогда не завоевывает популярность меня. Вы можете быть заинтересованы на Java, хотя. Попросите здесь преимущества использования его по C++ или другим языкам ООП.
Для веб-разработки идут для JavaScript, особенно рассматривая волну Ajax. Это становится интересным в те дни. Мы говорили о Smalltalk, хорошо, Побережье является удивительной платформой для веб-разработки. Это работает (по крайней мере, я примерил), Писк/Visualworks..., это красиво.
ну, существует много из больше для доставления: Схема, LISP, Ruby, Lua, Bash (!), Perl (тьфу), Haskell... Судите их всех и развлекайтесь!
если Вы хотите абстрагировать управление памятью, Java прибывает по моему мнению немедленно.
Схема.
Маленький Интриган и Структура и Интерпретация Компьютерной программы расширят Ваш ум странными и замечательными способами.
DrScheme является хорошим IDE для новичков. Язык программирования Схемы делает хорошую, свободную ссылку.
Я сказал бы, что это зависит от вида программирования, Вы хотите попробовать. Если Вы хотите остаться на стороне ООП, учиться Python или Ruby , оба языка обеспечивают простой способ создать привязку для использования кода C++ из сценария (по причинам эффективности).
при необходимости в другом подходе к программированию выучите "функциональный" язык как Lisp или Haskell.
И если необходимо включать быстрый и небольшой язык сценариев в приложении C++, попробуйте Lua.
Наконец, что не менее важно, если Вы знаете Java и ненавидите его, можно попробовать Scala, язык, где можно смешать классы Java с кодом Scala, очень интересным.
Хорошо, если бы Вы ищете очень высокий уровень абстракции и управления памятью тогда, я сказал бы, что шепелявость была бы идеальным кандидатом. Я изучение это теперь, медленно, и это является самым забавным, я имел с новым языком.
сказавший, что Python или Ruby могут быть лучшим компромиссом между выразительностью и популярностью. Платформа Django Python является одной из лучших платформ RAD при поиске материала веб-приложения.
C#, если Вы находитесь в экосистеме Microsoft.
Python и Ruby, кажется, имеют большую часть тяги в пространстве Linux/Unix/и т.д.
ObjectiveC является доминирующим на Macintosh и iPhone. Новая MacOS реализует сборку "мусора" для подмножества платформ, но использовать остальных необходимо было бы сделать управление ресурсами сами.
Вы могли изучить Java, поскольку он делает сборку "мусора" также, но количество платформ, с которыми необходимо было бы познакомиться быть продуктивным Java-разработчиком, является пугающим.
Если Вы довольны синтаксисом C++ и стилем, Вы могли бы найти D быть интересным языком. Или если бы Вы хотите расшириться, какой-либо Python, C#, Java, Ruby был бы отличным выбором.
так же Lisp.. или схема
, Даже если Вы никогда не используете его, это удобно. Я [только 110] действительно получили шаблонное программирование после изучения его.
Другой - пролог. это вставляет Вас не последовательное мышление.
Попытка чего-то действительно внешнего как Haskell позволит Вам думать по-разному. Это также помогает Вам думать рекурсивно. C++ имеет рекурсию, но это пропитывает намного больше частей функциональных языков.
Я вижу много превосходных предложений до сих пор. Однако я думаю, что существует что-то пропавшие без вести, ассемблер.
, Почему изучают ассемблер?
Некоторые ресурсы ассемблера:
Я сказал бы, что от Вашего вопроса Вы, вероятно, не закончили узнавать о C++. При тихом выполнении собственного управления памятью тогда, у Вас все еще есть длинный путь для движения моего друга!
Выезд auto_ptr и shared_ptr - проверяют библиотеки Boost.
Так же с абстракцией - на что Вы конкретно жалуетесь? AFAIK там не очень, Вы не можете сделать с C++, который присутствует в другом языки со строгим контролем типов .
я знаю, что это не отвечает на Ваш вопрос - Вы хотите переместиться вперед, но C++ является одной из тех вещей, где Вы никогда действительно прекращаете учиться. Если Вы скучаете, берете краткий набег в шаблоны и обрабатываете метапрограммирование по шаблону...
Я предлагаю изучить проектирование баз данных и язык запросов, такой как SQL.
можно запустить с настольного инструмента как Microsoft Access или использовать свободную SQL Server Express или Postgre или MySQL.
Лично Я программировал на Java, Python, C / ++, и мне больше всего нравится python. Хотя C ++ может делать все, что умеет Python, и даже больше, я написал программу Python примерно с 10 строками, которая на C ++ займет около 50. Итак, мораль истории - используйте python.
Я должен написать отдельный ответ для Perl. В то время как Python примерно эквивалентен по функциональности и считается более чистым и современным, Perl обладает своей собственной элегантностью - элегантностью чистого прагматизма. Он также может похвастаться действительно отличной библиотечной поддержкой. Взгляните на Perl, чтобы расширить свой мозг в направлении, противоположном Haskel :) (хотя поклонники Perl утверждают, что его можно использовать для функционального программирования).
Если вы еще этого не сделали, попробуйте язык сценариев. Это должно изменить то, как вы работаете и думаете. Надеюсь, в хорошем смысле :)