|
12 | 12 |
|
13 | 13 | 00:03:02 Yeah, that's think of the times back when you had to have a leased line or back when you had BBs you had to dial up to get online. Like it's just such a different world, right. But that's really cool that you held that company like emerged out of that world,
|
14 | 14 |
|
15 |
| -00:03:17 right. So now you cannot imagine that not using it. Yeah, so and then, several years later, I started to work. For another company. It was a FinTech startup. It was a New York based company. And they outsourced the development to St. Petersburg, Russia. And this is the city where I'm originally from. And I was developing the back end in C++ and Java. And when the business took off, they decided to form a team and development team in New York. And they invited me for this role. So I moved to New York, and formed the development team there and was building software for some years there. And during that time, actually, my friend Alexander Kozlowski, he studied together in the university. And he was really, really interested in databases. And he was actually a senior lecturer. So he taught people databases, and he feel that most people actually don't get relational algebra, you know, and there should be a better way to build software. And he suggested an idea to build web framework. And I love that Yeah, because working for financial company, I saw that this very fast environment and I actually missed a tool like Delphia rabbit application development tool. And I thought that if I would have one, I would use one This car, we started to work on pornea. And it was a weekend project actually initially developed the whole framework issue. And it was a templating engine it was routing it was, or RAM. And then we found that probably we shouldn't do all those things, because it's too much. Yeah, by the time SQL SQL alchemy appeared, actually, we started the same here 2006, it was the first year when we started to work together. And actually, by that time, Alexander origa, tried to build a mapper. He tried in C++ in delfy. And Python was a choice, which he came to understanding that it should be a dynamic language. |
| 15 | +00:03:17 right. So now you cannot imagine that not using it. Yeah, so and then, several years later, I started to work. For another company. It was a FinTech startup. It was a New York based company. And they outsourced the development to St. Petersburg, Russia. And this is the city where I'm originally from. And I was developing the back end in C++ and Java. And when the business took off, they decided to form a team and development team in New York. And they invited me for this role. So I moved to New York, and formed the development team there and was building software for some years there. And during that time, actually, my friend Alexander Kozlowski, he studied together in the university. And he was really, really interested in databases. And he was actually a senior lecturer. So he taught people databases, and he feel that most people actually don't get relational algebra, you know, and there should be a better way to build software. And he suggested an idea to build web framework. And I love that Yeah, because working for financial company, I saw that this very fast environment and I actually missed a tool like Delphia rabbit application development tool. And I thought that if I would have one, I would use one This car, we started to work on pornea. And it was a weekend project actually initially developed the whole framework issue. And it was a templating engine it was routing it was, or RAM. And then we found that probably we shouldn't do all those things, because it's too much. Yeah, by the time SQL SQLAlchemy appeared, actually, we started the same here 2006, it was the first year when we started to work together. And actually, by that time, Alexander origa, tried to build a mapper. He tried in C++ in delfy. And Python was a choice, which he came to understanding that it should be a dynamic language. |
16 | 16 |
|
17 | 17 | 00:05:50 Yeah, I'm sure it was much harder in C++ to pull something like this off, especially with the really rich language level query syntax, like, I'm not really sure how that works in C++,
|
18 | 18 |
|
|
22 | 22 |
|
23 | 23 | 00:06:44 Yeah, exactly. And what you liked as well that it is so natural for someone who just starts working with Python, that you don't need to actually learn another language such as SQL.
|
24 | 24 |
|
25 |
| -00:06:58 Yeah, I think you probably could get away with just being able to read but not write SQL with Python. Yeah. Yeah. Or SQL alchemy, or some of the other ORM. Right. Like, if you can understand the debug output. You may be okay. Notice, it depends on how complex this was against. But that's, that's a cool goal anyway, |
| 25 | +00:06:58 Yeah, I think you probably could get away with just being able to read but not write SQL with Python. Yeah. Yeah. Or SQLAlchemy, or some of the other ORM. Right. Like, if you can understand the debug output. You may be okay. Notice, it depends on how complex this was against. But that's, that's a cool goal anyway, |
26 | 26 |
|
27 | 27 | 00:07:18 exactly. I worked with people who actually can program different languages, but it's hard for them to understand SQL pretty well. And that's why we decided that if we could provide such a tool, it will be very helpful. And I could see how it can speed up making prototypes. And you know, when you build the prototype, you never know if it will be an application later and how to evolve.
|
28 | 28 |
|
|
42 | 42 |
|
43 | 43 | 00:09:56 Right, and pony. It's a small horse, right? This is smart and powerful. So you believe that these features we put into our mapper? I think so too.
|
44 | 44 |
|
45 |
| -00:10:09 I think it's really, it is really nice. And I'm looking forward to using it properly on some projects now that I know a little bit more about it. So I want to ask you what's pythonic about it, but I think maybe the way to, to uncover the various pythonic elements is to actually work through an example. But before we get to that, let's let me ask you this other question. So there's these two styles or two design patterns for that typically are in play at ORM s. And that's whether or not the ORM acts as an active record, where you sort of work with individual elements. So like Ruby on Rails, or I think the Django ORM is like this. Or it's a unit of work, which is like SQL alchemy, where you create a bunch of objects and make some changes, inserts, updates, deletes, and so on. And when you're finally ready, you commit that unit of work, and it applies all of those, which style is pony? |
| 45 | +00:10:09 I think it's really, it is really nice. And I'm looking forward to using it properly on some projects now that I know a little bit more about it. So I want to ask you what's pythonic about it, but I think maybe the way to, to uncover the various pythonic elements is to actually work through an example. But before we get to that, let's let me ask you this other question. So there's these two styles or two design patterns for that typically are in play at ORM s. And that's whether or not the ORM acts as an active record, where you sort of work with individual elements. So like Ruby on Rails, or I think the Django ORM is like this. Or it's a unit of work, which is like SQLAlchemy, where you create a bunch of objects and make some changes, inserts, updates, deletes, and so on. And when you're finally ready, you commit that unit of work, and it applies all of those, which style is pony? |
46 | 46 |
|
47 | 47 | 00:11:05 Yeah, absolutely. There are two basic patterns. And with Active Record, you have an object, which represents a line in the database. And the thing is that if you select the same object twice, using active record, you will have two instances of the same object in the memory. And it is a huge problem, because now you have two objects, which are actually the same. And when you start to change one object, and then change another one, you can have lost updates. And another thing that you need to always remember to call safe on each object.
|
48 | 48 |
|
|
0 commit comments