This forum has been archived. Please start a new discussion on GitHub.

ICE vs Twisted

I'm having a difficult time understanding the difference between ICE and Twisted Matrix. I hope that someone can give me some insight on where these two products differ (feature wise). I have to make a decision about which to use for a project at work.
Twisted is a framework, written in Python, for writing networked applications. It includes implementations of a number of commonly used network services such as a web server, an IRC chat server, a mail server, a relational database interface and an object broker. Developers can build applications using all of these services as well as custom services that they write themselves. Twisted also includes a user authentication system that controls access to services and provides services with user context information to implement their own security models.

Edit: I found out that Twisted is like ACE, a networking framework for C++. So... ICE vs ACE?


  • mes
    mes California

    Ice and ACE are not really comparable, as they offer different levels of abstraction. ACE provides a portability layer for low-level network communication (as well as many other system APIs). It would be more appropriate to compare Ice with TAO, which is a CORBA implementation written using ACE. You can find a comparison of Ice and CORBA here.

    If you are operating in a pure Python environment, don't need to communicate with programs written in other languages, and don't need any of the services Ice provides, then a Python-specific solution might be a reasonable choice.

    Take care,
    - Mark
  • Ok, that's interesting, but have you heard of Twisted or know how that compares?
  • mes
    mes California
    I've heard of it, but all I know about it is what I've read from a brief look at their site. I suspect you won't find many users who are familiar with both Ice for Python and Twisted and could offer you a detailed comparison. The best approach is to evaluate both solutions to see which is more appropriate for your particular application.

    - Mark
  • Yeah, I was afraid you'd say that. :)