the difference is that when you write @(posedge clk) it's just a conditional statement, which checks for clocks positive edge. And always @(posedge clk) is continous by its nature and is usually used for modelling of synchronous logic like flip-flops.
when you use always it means that all posedges of the clock this should happen. @() is just a conditional statement when you synthesize it may be then u will find the difference