TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: What are the best technologies you've worked with this year?

90 pointsby iamelgringoover 15 years ago
What are the best shiny new technologies that you worked with this past year? I'm always interested in hearing about what others are working with, and loving.<p><i>edit</i> I'd also love to hear what you love about it and why.

49 comments

pavlovover 15 years ago
XMPP, BOSH and the Strophe library (both the JavaScript and C incarnations).<p>Earlier this year I got tasked with implementing a system which involved multiple mobile clients talking to a rendering server. The mobile devices had a fairly beefy browser (Nokia N900), so the client was clearly suitable to be delivered as a web app. On the server side, we already had a realtime graphics system I had written earlier, to which the web clients would need to talk over a bidirectional connection with near-realtime responsiveness.<p>Being a C/desktop guy with little network experience, my first intuition was to do the simplest thing I knew how to handle: linking a small embeddable web server (e.g. libmicrohttpd) into the render server, and devising some cheesy custom application-specific protocol over HTTP.<p>Luckily, my work partner is not as stuck in the 1990s as I am, and he suggested we use XMPP. I was sceptical at first (XML? A server written in Erlang? Do we really need to go there? I just want to tinker with my pointers...)<p>He showed me some demos of realtime XMPP web apps built with Strophe.js, and I was rather impressed. Then we went over our system's client/server design and how it would map to XMPP, and I was sold.<p>We ended up using many more XMPP features than I had initially imagined, including publish/subscribe and multi-user chat rooms. Had we gone with my original approach, these concepts would have been implemented in some haphazard way in the render server itself. Now the rendering system just talks to the XMPP server like any other client. It's stable, scalable and fast.<p>Still, while BOSH in the browser is pretty amazing in practice, it does feel like a hack that's stretching the reasonable limits of what web apps should be doing over HTTP. Hopefully this time next year I'll be able to say that one of the best technologies I've worked with in 2010 was HTML 5 web sockets...
评论 #1006119 未加载
simonwover 15 years ago
Redis. It's a very different kind of database - being able to perform 80,000 set or list operations a second enables a whole bunch of solutions to otherwise difficult problems (real time stats stuff, writing in to activity streams etc). SRANDMEMBER on its own is invaluable since picking a random item from a regular relational database using ORDER BY RAND() tends to kill it stone dead under load.
baguasquirrelover 15 years ago
Haskell. I avoided it for the longest time because of the purely-functional-no-side-effects zealots. As it turns out, it is a surprisingly powerful and beautiful language, and you can get quite far without needing OO.<p>The paradigm wars will rage on, but in the meantime, the rest of us have a language that has a rich library set and a very rewarding programming experience. The usefulness of applicative monads, functors and typeclasses have convinced me that there's something much, <i>much</i> bigger out there with regards to these so-called design patterns, something that we have not even begun to explore and discover.
评论 #1006394 未加载
yummyfajitasover 15 years ago
Rabbitmq (and AMQP in general). It's just simple, straightforward message passing.<p>My C++ process creates a queue, and binds it to the key "yummyfajitastasks". My python process (a django webapp, in this case) sends messages with the key "yummyfajitastasks". My c++ process receives them, does work, sends messages back.<p>Combine this with JSON or some serialization method and you've <i>almost</i> got erlang style messaging, except you can write part of your code in python, part in C++, part in ruby, etc.
评论 #1006237 未加载
yasonover 15 years ago
Clojure.<p>It's the first Lisp that, to me, is both fun _and_ practical.<p>Java libraries aren't as simple as the Python counterparts but the maturity of the JVM vs. Python VM kind of balances that out.
评论 #1006269 未加载
评论 #1006322 未加载
bigmacover 15 years ago
LLVM. It is a ridiculously well written and well documented codebase. The transformation/optimization framework is remarkable and surprisingly approachable. The compiler intermediate representation is easy to work with both in the emitted bitcode files and in llvm's internal data structures. I find it a joy to work with.<p>Its also cool due to all of the other great technologies that are taking advantage of it (Mono, Parrot, Adobe CS4, Apple)<p>I think once llvm and clang become mature enough, the FOSS community will completely supplant gcc with this technology.
ahlatimerover 15 years ago
zsh - clearly not new, but I recently switched from bash to it. Spelling correction is very cool, and I like the tab completion a lot more.<p>Rails - again, not new, but I've really enjoyed it. I've built web apps in COBOL (had to at my previous employer), so being able to work with Rails has been a joy in comparison. I actually started playing around with Rails last year, but I never really did anything with it until this year. I like Ruby, although I'm not entirely sure I like it more than Python yet. It's growing on me, though. I like that I can have a basic prototype up and running in basically no time at all. When I was learning it, it was also nice that I only really had to learn one piece at a time. I tried out Django shortly before I began using Rails, being more comfortable with Python, but I felt that the learning curve was a bit steeper with Django.<p>Google Chrome - I'm not sure if this is the type of response you're after, but Chrome quickly supplanted Safari as my favorite browser. It's faster, the UI is slightly better, and my gripes are few and far between.
jazzychadover 15 years ago
Node.js. Event driven I/O is so so sweet. I have sharpened my javascript fu over the last year or so, and being able to bring it server-side is surprisingly fun and easy.
评论 #1006215 未加载
JeffJenkinsover 15 years ago
CouchDB was probably the most interesting since it had iterative map reduce, but I ended up abandoning it for MongoDB because it was <i>much</i> faster.<p>The second best is Mako. A month or two ago I switched from using Django for templating to Mako. Depending on the composition of the pages there was a 2-6x speed improvement, the code got significantly cleaner since special tags/filters weren't needed for basic opertions like less-than or modulo. Also, the ease of creating custom tags in Mako made me more willing to create them and drastically reduced code complexity.<p>The best technology I first used this year was jQuery. As someone who knew ECMAScript extremely well and JavaScript a bit it made me an order of magnitude more productive and made things possible that I would have been too frustrated to complete otherwise. It immediately seemed natural to work with the DOM using set operations. And it has tons of plugins which are just as easy to use. This is one of the best designed libraries I've ever used. I hope using it will act as an introduction to functional programming to people who might have otherwise been scared of it.
cmelbyeover 15 years ago
I've loved playing with Heroku and I'm excited to deploy my real project to it once we finish a stable version of it.<p>I've also liked working with Rails, because it has made things like i18n, testing, and implementing new features so much easier.<p>Finally, I've enjoyed using beanstalkd for my message queue. It's tiny and fast and it just stays out of the way. I'm using a new library I made called Peon (based off of an AMQP-based library called Minion) and it's a really easy, scalable way to bring long running tasks into the background.
koevetover 15 years ago
- Play! Framework - finally something close to Rails productivity for Java developers. And supports Scala too.<p>- Redis - the fastest NoSQL engine around. Easy and elegant.<p>- Solr - Indexing for the masses. If it only had real time search...
评论 #1006273 未加载
csytanover 15 years ago
Google Appengine: Probably _the_ easiest platform to develop a webapp on if you use Python and are okay with its limitations.<p>Tornado: If you are going to develop on GAE, Tornado is the way to go. It is fast, well written, and only includes the core features needed for a web app.<p>I can't highlight how much easier it has made things for me since switching from Django. Debugging Tornado's source code was a breath of fresh air compared to Django's monkey-patched bird's nest of dependencies.
评论 #1006204 未加载
dlevineover 15 years ago
Rails and JQuery. It's amazing how quickly I can build rich, interactive applications. I can do with two or three lines of code what would require 20 just a few years ago.<p>Also, GIT. Best source control hands down.
评论 #1006454 未加载
jorangreefover 15 years ago
Tokyo Cabinet (key value storage: removed the "R" and "M" from "ORM", managed to get an object from disk to the client with the object being opaque to the server, cutting deserialization/serialization overhead down, implemented indexes to keep track of keys and got more of an idea of what MySQL does behind the scenes).
评论 #1005939 未加载
评论 #1013682 未加载
hromanover 15 years ago
Pylons, i love it because of its flexibility, I can use whatever I want in contrast to other frameworks w/o getting headaches (yes, I'm talking about you, Django).<p>MongoDB and others NoSQL dbs, I don't have words to describe my feelings.<p>Jquery, well, I began to use this framework in November I was a heavy Mootools user, but jquery is just amazing, it's so simple, I don't have to write things like "x.get('value')" (annoying!).<p>These days I'm playing with Node.js which looks pretty amazing, in fact it's very possible I use it in a game I'm planning to do.
grinnbearitover 15 years ago
Currently working through Joe Armstrong's programming erlang. I'm interested in functional programming and concurrent programs and erlang seems to fit really well.<p>I also find Clojure very cool :)
评论 #1006101 未加载
dyogenezover 15 years ago
XMPP and Bosh with Strophe - hit a XMPP server with Javascript instead of a web server. Realtime Javascript Push on an established base (XMPP). Real cool stuff, just need something to use it on.<p>Sinatra - Very fast/easy ruby framework. (Similar to Cherry.py in the Python world).<p>Jquery - Can't imagine using any other framework after a year working with this.<p>Facebook Connect - Much more robust than I thought possible due to things like FQL and FBML.<p>Heroku - Super simple ruby hosting
评论 #1006700 未加载
paulgbover 15 years ago
Amazon Elastic MapReduce and Hadoop Streaming. You just write a few lines of python (or your language of choice), upload your data, and it takes care of the rest.
andrewcookeover 15 years ago
opencl (if you've not heard of it, it's a way to program graphics cards - very like cuda, but cross-platform). we had some numerical code in matlab that was taking too long to run. i managed to get a speed-up of 80x by moving it to a gpu - and the gpu in question is not even the latest generation, but something we picked up on newegg for less than $200. and i suspect that's just for starters - i haven't even profiled it yet to see how to make it faster.<p>using opencl isn't that much harder than c. obviously you need to understand a little about how gpus work, and there are all the same issues about allocating memory, segmentation faults, etc. but the compiler and runtime are quite solid, and the docs more than adequate. now that i am past the worst of the learning curve i'm looking around for more slow code, because it's an easy way to get more speed.<p>also, django, but others have mentioned that (it's such a breath of fresh air if you're used to using java...). next year, i hope to play with llvm some (although it will have to be on my own time - can't see how to do that at work...)
lssndrdnover 15 years ago
F#. I work in a primarily Microsoft-based environment, and I wanted to learn a functional language, so F# is a good choice for me - I can actually put it to use at my "day job".<p>jQuery. A great javascript library.
评论 #1006327 未加载
benofskyover 15 years ago
Objective-C and Cocoa, not new but <i>my new</i> favourite development environment. I love the documentation, in my opinion the best documentation of any language.<p>I love the way Apple doesn't care what anyone else thinks about their language and has ridiculously verbose 40 character long method names to make code clearer.<p>Love it!
评论 #1006118 未加载
chriseidhofover 15 years ago
Haskell and the Cocoa Touch framework (sadly, not yet in conjunction).<p>Haskell isn't really new, but it still is the best programming language I've worked with (yes, "best" is personal in this case). I don't think any other language allows me to write programs that are more concise.<p>The other thing that 2009 brought me was iPhone Development. Although I don't like Objective-C that much, the Cocoa Touch framework is excellent. Once you get a grip on it and on the design patterns your code tends to get very small, too.<p>With both these technologies I shared the same experience: at the start they look incomprehensible and working with them made me less productive. However, only after really learning them I started to full appreciate all the things.
评论 #1006396 未加载
ronnierover 15 years ago
-VirtualBox (<a href="http://www.virtualbox.org" rel="nofollow">http://www.virtualbox.org</a>)<p>-ASP.NET MVC<p>-Visual Studio 2010
评论 #1006297 未加载
chipsyover 15 years ago
Software technology: I spent most of my time implementing my own tools and tech using haXe, Leo, wxPython, SQLite. haXe+Leo is an amazing combination for maintaining code.<p>Not a software technology: <a href="http://www.c-thru-music.com/cgi/?page=prod_axis-49" rel="nofollow">http://www.c-thru-music.com/cgi/?page=prod_axis-49</a><p>This thing is amazing, especially if you aren't already an experienced keyboardist; it makes all the note relationships easier to learn so you get to the "fun" part of playing faster.
BerislavLopacover 15 years ago
Django :)
评论 #1006223 未加载
评论 #1005950 未加载
warpover 15 years ago
CouchDB. A schema-less database just makes so much more sense for what I'm doing. (and it is extremely easy to use from python, due to couchdbkit).
milestinsleyover 15 years ago
MongoDB has helped me rethink everything I thought I knew (and disliked) about DB's.<p>Javascript. This year, the full potential (and diversity) of this language has truly revealed itself to me, especially with the maturing of frameworks like Cappuccino (which is a testament to what can be done with JS).<p>Using Git is the first time I've properly been able to integrate source control into my workflow, without it being a pain!<p>VPS (cloud hosting). Being able to spin up a server quickly and cheaply has really facilitated my ability to experiment and is highly conducive to learning about these new technologies.<p>I think it's been a great year for innovation. 2010 should be pretty exciting too. New Years Resolution: explore server side Javascript (i.e node.js) and build something awesome with Rails!
michaeljungover 15 years ago
Certainly Google App Engine(Phyton). It is nice to have a small free version for experiments and own projects. Great way to get your hands dirty. AWS/Amazon has to do its homework and open up a sandbox type of platform where you can put your small project of your own at no cost, and opt-in that others can copy/improve.<p>'Open' is the best way to innovate (small steps of improvement) on something.<p>Zynga (the company and the concept) proved to be successful with enough leverage and network effects Facebook provided.
emilis_infoover 15 years ago
Helma NG (Server-side JavaScript).<p>Easy to get started, fast, stable, the community is helpful and it is easy to read their source code if you get stuck somewhere.
vyrotekover 15 years ago
We started using Windows Azure with our latest project. The Message Queueing and Schemaless Storage are very cool. It completely changed my opinion of the 'Cloud'.
macemonetaover 15 years ago
Revisor (see: <a href="http://forums.fedoraforum.org/showthread.php?t=236679" rel="nofollow">http://forums.fedoraforum.org/showthread.php?t=236679</a>).<p>The ability to create custom Linux spins and even full system software thumbdrives make drive failures / system recovery much less impacting. It also makes "ready to go" installations a snap.
jeff444over 15 years ago
Java libraries aren't as simple as the Python counterparts, agreed and I too just built a sudoku solver <a href="http://sudokusolver.info" rel="nofollow">http://sudokusolver.info</a> seems like everyone has built one of those... I wonder why?
kylebraggerover 15 years ago
redis - insanely fast - I've been using for some stuff at Cork'd mongo - very excited by this one, too. not having to write ALTER TABLE statements is pretty great.
va_coderover 15 years ago
I've been using Groovy and Grails to introduce dynamically typed, rapid development tech to a mostly Java only shop. In these scenarios Groovy really shines.
DaniFongover 15 years ago
My vote goes to Mathematica, which is probably both the best and worst technology I've used this year. Oy!<p>A more one-sided review goes to Evernote :-)
gtaniover 15 years ago
loose summary:<p>- dynamic languages: ruby/rails/merb/sinatra,, python/django/twisted/tornado, groovy/grails (nobody mentioned scala very much)<p>- FP, erlang, clojure, F#, haskell;<p>- noSQL: KV store, doc-oriented db, ..<p>- message queues and brokers: AMQP, rabbitMQ, XMPP,<p>- javascript/ browser capabilities: jquery, node.js, BOSH, other libs<p>- hosting, deploy, VCS: VPS, EC2, git,
spooneybargerover 15 years ago
Seaside
评论 #1005983 未加载
julienover 15 years ago
PubSubHubbub : Bringing an end to the stupid feed polling we're tried to fight for years (see SUP from Friendfeed, AtomStreams... etc).
pwpwpover 15 years ago
GAE: if you can reduce your problem to searching in a b-tree, you're in heaven.<p>GWT: code for the browser like it's 1984.
xenophanesover 15 years ago
the ipod touch. it's an awesome device.
dchestover 15 years ago
Grand Central Dispatch and C blocks.
danthemanover 15 years ago
E4X - ECHMAscript for XML<p>This is in AS3, used in flex. It's a joy to process xml with it.
paraschopraover 15 years ago
Solr for super-easy full text searching and Memcache for a no-brainer distributed queue
评论 #1007300 未加载
raover 15 years ago
Cassandra.
charlesjuover 15 years ago
Amazon EC2 Engine Yard's Flex Ruby on Rails Ruby
mattdennewitzover 15 years ago
django, git, celeryd, mongodb, redis, tornado, appengine, superfeedr, phsb, and opencalais come to mind
sdaveover 15 years ago
in-house column oriented database, source code generator for diameter protocol application.. et. al.
aitoehigieover 15 years ago
web2py and GAE
w3matterover 15 years ago
Redis -- with Ohm. Really great. Build a bunch of sites with it. A nice replacement for ActiveRecord in many use-cases. Now ready to redo some BIG sites that we have using just Redis.<p>It has transformed my thinking about data (i'm a postgres guy), and just made Rails more fun now. The sites I did are also blazing fast.