Driven by a desire to understand how Photoshop worked under the hood, the author embarked on a personal project to recreate core functionalities in C++. Focusing on fundamental image manipulation like layers, blending modes, filters (blur, sharpen), and transformations, they built a simplified version without aiming for feature parity. This exercise provided valuable insights into image processing algorithms and the complexities of software development, highlighting the importance of optimization for performance, especially when dealing with large images and complex operations. The project, while not a full Photoshop replacement, served as a profound learning experience.
A developer created a web-based simulator that recreates the experience of using a telegraph. The simulator allows users to input a message, which is then converted into Morse code and visually transmitted as flashing lights and audible clicks, mimicking the original technology. It also features a receiver that decodes the transmitted Morse code back into text. This project provides a hands-on way to understand and interact with the historical process of telegraphic communication.
Hacker News users generally praised the Telegraph simulator for its simplicity, clean design, and accurate recreation of the Telegraph experience. Several commenters appreciated the nostalgia it evoked, recalling childhood memories of playing with similar toys. Some suggested improvements, such as adding sound or the ability to send messages between two simulated devices. A few users discussed the historical significance of the Telegraph and its role in communication technology. One commenter even shared a personal anecdote about their grandfather's career as a telegraph operator. The overall sentiment was positive, with many finding the project a charming and educational homage to a bygone era of communication.
Summary of Comments ( 122 )
https://news.ycombinator.com/item?id=43374278
Hacker News users generally praised the author's project, "Recreating Photoshop in C++," for its ambition and educational value. Some questioned the practical use of such an undertaking, given the existence of Photoshop and other mature image editors. Several commenters pointed out the difficulty in replicating Photoshop's full feature set, particularly the more advanced tools. Others discussed the choice of C++ and suggested alternative languages or libraries that might be more suitable for certain aspects of image processing. The author's focus on performance optimization and leveraging SIMD instructions also sparked discussion around efficient image manipulation techniques. A few comments highlighted the importance of UI/UX design, often overlooked in such projects, for a truly "Photoshop-like" experience. A recurring theme was the project's value as a learning exercise, even if it wouldn't replace existing professional tools.
The Hacker News post titled "That Time I Recreated Photoshop in C++" (linking to an article detailing the author's experience recreating Photoshop features in C++) has generated a number of comments discussing various aspects of the project and image editing software in general.
Several commenters focus on the author's choice of C++ and question its suitability for such a project. Some suggest that languages like C# with its garbage collection might have been a more productive choice, especially for managing memory when dealing with large images. Others point out that the performance benefits of C++ might not be fully realized in this type of application, given that many image processing operations are already highly optimized within existing libraries.
A significant thread of discussion revolves around the learning experience gained from such an undertaking. Commenters acknowledge the value of recreating existing software for educational purposes, emphasizing the deeper understanding of underlying principles that can be acquired through such a project. They also discuss the challenges of replicating complex software and the importance of choosing a well-defined scope to avoid becoming overwhelmed.
Some users express skepticism about the true extent of the "recreation," pointing to the potential difference between replicating the user interface and implementing the underlying image processing algorithms. They argue that the true complexity of Photoshop lies in its highly optimized algorithms and vast feature set, which would be extremely difficult to replicate fully.
Another commenter shares their own experience with writing a simplified image editor, offering insights into the intricacies of handling features like selection tools and layer management.
A few comments delve into the technical aspects of image processing, mentioning libraries like GEGL and the complexities of color management.
Finally, several commenters offer alternative approaches and tools for image editing, including GIMP and various command-line utilities, suggesting that these might be more efficient solutions depending on the specific needs. They highlight the mature and feature-rich nature of existing open-source options.